6. Validation
Validation falls under the general heading of
V&V or verification and validation. Again this is
an area in which there seems to be some
ambiguity about the meaning of the individual
terms. IEEE standard 1012-1998 defines
requirements validation as the process of
evaluating an implemented system to determine
whether it conforms to the specified requirements
[35]. However this definition does not take into
account the fact that the specified requirements
may fall short of capturing the real needs of the
stakeholders. The SWEBOK defines validation as
the process of ensuring that the engineer has
understood the requirements correctly, in other
words “Have we got the right requirements?”,
while verification is defined as the process of
ensuring that the requirements documents
conform to specified standards. Verification
addresses the question of “Have we got the
requirements right?” [5]. Perhaps rather wisely
many organizations simply include all the
activities aimed at ensuring that the software will
function as required under the single umbrella of
V&V.
Validation practices should be built into every
stage of the requirements process in order to
ensure a quality product. Studies [36] have shown
that errors introduced during requirements are the
most costly to repair because of their far reaching
implications into the system. Furthermore, as
depicted in Figure 5, it is generally accepted that
the relative cost to repair a software error
progressively increases at later stages of the
lifecycle model, thereby underlining the
importance of early V&V activities. Typical
methods include reviews, prototypes, models and
acceptance tests [37].
x Reviews are conducted by stakeholders with
the intent of finding errors, conflicts, incorrect
assumptions, ambiguities, and missing
requirements. Formal inspections and reviews
have been shown to be effective in removing
errors early in the process and thereby reducing
the cost and effort that would have been involved
fixing downstream problems [37,38]. It is
important to have customer and user
representatives as well as developers involved in
the review process so that all perspectives can be
considered. Reviews are useful at all major
milestones in the delivery of the requirements
documents, including completion of the system
definition document, system requirements
document, SRS, and prior to all major baselines.
All reviews should result in a list of identified
problems and a set of agreed upon actions. As
reviews require significant time commitments
they can be costly to conduct, and it can be
beneficial to perform pre-review activities to
identify and handle obvious errors in advance.
Furthermore review documents should be
distributed and read in advance of a meeting so
that all members can arrive well prepared.
x Prototyping is useful for validating the
software engineer’s interpretation of the users’
needs. Stakeholders provide more useful feedback
when interacting with a prototype than when they
simply read an SRS. In fact requirements
developed with the help of a prototype tend to be
less volatile than those developed without one.
x Model validation is used to verify the
correctness of the system. Conceptual models can
be formally or informally validated, either by
statically analyzing the model or in the case of
formal specifications by applying formal
reasoning to prove the properties of the system. In
critical systems, it has been found that the activity
of formally modeling the system can in itself serve
to identify errors such as ambiguities and
conflicts, however the cost of creating formal
models can normally only be justified for high
assurance systems.
x Acceptance tests are used to validate that the
completed product fulfills the requirements of the
system. All requirements, including nonfunctional
ones, must therefore be specified in a
way in which they can be validated.
7. Requirements Management
Almost every software product continues to
change and evolve throughout its lifetime. If
change is not managed well, the quality of the
product will deteriorate and future changes will
become increasingly difficult to accommodate.
Change management is concerned with carefully
controlling changes to the requirements, both
during the development process and following the
product’s deployment. Change management is
supported through requirements traceability,
managing the current status of all requirements,
and through placing requirements under
configuration control. Measuring the volatility of
the requirements in a project can provide useful
insights into the overall requirements process.
x Requirements traceability is defined as “the
ability to describe and follow the life of a
requirement, in both a forward and backward
direction (i.e., from its origins, through its
development and specification, to its subsequent
deployment and use, and through periods of
ongoing refinement and iteration in any of these
phases)” [39]. A trace defines a relationship
between two artifacts. For example, a vertical
Stage Relative Repair Cost
Requirements 1-2
Design 5
Coding 10
Unit Test 20
System Test 50
Maintenance 200
Figure 5. Cost to repair software errors at various stages
trace between a lower level requirement and a
higher level one could define a “refines”
relationship, whereas a trace from an executable
method to a requirement could define an
“implements” relationship. Typical traceability
techniques include matrices, hyperlinks, or
traceability tools embedded into requirements
management tools [39,40].
When a change is proposed, the traceability
infrastructure provides the ability to trace back to
the rationale behind impacted requirements so that
current decisions can be informed ones, and to
trace forward to artifacts such as design
documents, code, and test cases in order to more
completely understand how to implement the
change and to identify and mitigate its possible
side effects. Unnecessary traces lead to a
maintenance nightmare, while too little
traceability provides inadequate support for the
change process [41]. Therefore links should be
carefully established to provide necessary support
for change analysis activities.
x Change requests should be managed
systematically. Many requirements management
packages now also incorporate “request for
change” (RFC) features. Once a RFC has been
created, an impact analysis is performed and the
change is prioritized and assessed for in terms of
its benefits, cost, and effort. Any change that is
approved should go through the same rigorous
analysis and quality assurance as the initial
requirements.
x Requirements attributes are an important
part of the change management process. Each
requirement is assigned a unique identifier for
tracking purposes, and auxiliary attributes are used
to record information such as change dates,
rationales, and current status.
8. Conclusions
In this tutorial, we have emphasized a more
traditional approach to requirements engineering
in which the requirements process involves
elicitation, analysis, specification, validation, and
management. Recently there has been a trend
toward adopting more agile development methods
[42]. Among other things the agile philosophy
has challenged the accepted wisdom that the cost
of change increases over time and has adopted a
more flexible approach that embraces the
changing requirements of the customer throughout
the development process. Agile methods
minimize the importance of an upfront
requirements phase, instead focusing upon
delivering executable code to the customer as
early as possible. Although agile methods are
gaining in popularity, Boehm and Turner point out
[43] that they are more suited to smaller, volatile,
and non-critical projects. The more mainstream
agile methods targeted at larger, more complex
systems, or those developed in distributed
environments, adopt many of the requirements
practices described in this tutorial.
For readers interested in learning more about
software requirements, there are numerous books,
several of which have been referenced in this
tutorial [3,4,7,11,12,15] that provide more detailed
discussions on a variety of related topics.
6. ตรวจสอบ สอบตกอยู่ภายใต้หัวข้อทั่วไปV และ V หรือตรวจสอบ และตรวจสอบ อีกครั้ง เป็นพื้นที่ซึ่งดูเหมือน จะบางความคลุมเครือเกี่ยวกับความหมายของแต่ละบุคคลเงื่อนไขการ กำหนดมาตรฐาน 1012-1998 IEEEตรวจสอบความต้องการเป็นกระบวนการประเมินระบบการดำเนินการตรวจสอบว่ามันสอดคล้องกับความต้องการระบุ[35] . อย่างไรก็ตาม คำนิยามนี้ไม่พิจารณาบัญชีจริงที่ต้องระบุอาจตกขาดจับความต้องการแท้จริงของการเสีย SWEBOK กำหนดตรวจสอบเป็นกระบวนการของบริการที่มีวิศวกรเข้าใจความต้องการในที่อื่น ๆ ได้อย่างถูกต้องคำ "เรามีความต้องการเหมาะสมหรือไม่"ในขณะที่ตรวจสอบถูกกำหนดให้เป็นกระบวนการมั่นใจได้ว่าเอกสารความต้องการสอดคล้องกับมาตรฐานที่ระบุ การตรวจสอบคำถามที่อยู่ "เราได้มีการความต้องการเหมาะสมหรือไม่" [5] อย่างชาญฉลาดอาจจะค่อนข้างหลายองค์กรก็รวมทั้งหมดกิจกรรมที่มั่นใจว่า ซอฟต์แวร์จะทำงานตามความจำเป็นภายใต้ร่มเดียวของV และ V ควรสร้างแนวทางปฏิบัติในการตรวจสอบในทุกขั้นตอนความต้องการเพื่อการให้แน่ใจว่าผลิตภัณฑ์ที่มีคุณภาพ มีแสดงศึกษา [36]ข้อผิดพลาดที่แนะนำระหว่างความต้องจะค่าใช้จ่ายสูงสุดในการซ่อมแซมเนื่องจากการเข้าถึงของพวกเขาห่างไกลผลเป็นระบบ นอกจากนี้ เป็นแสดงในรูปที่ 5 จะโดยทั่วไปยอมรับที่ต้นทุนสัมพัทธ์เพื่อซ่อมแซมความผิดพลาดของซอฟต์แวร์ความก้าวหน้าเพิ่มขึ้นในระยะหลังของการแบบจำลองวงจร ขีดเส้นใต้จึงจะความสำคัญของ V และ V ช่วงกิจกรรม โดยทั่วไปวิธีรวมรีวิว ต้นแบบ แบบจำลอง และยอมรับทดสอบ [37]x รีวิวจะดำเนินการ โดยการมีส่วนได้เสียด้วยจุดประสงค์ของการค้นหาข้อผิดพลาด ความขัดแย้ง ไม่ถูกต้องสมมติฐาน ambiguities และหายไปความต้องการ และการตรวจสอบอย่างเป็นทางการมีการแสดงจะมีประสิทธิภาพในการลบข้อผิดพลาดในกระบวนการก่อน และลดลงจึง ต้นทุนและความพยายามที่จะมีส่วนเกี่ยวข้องแก้ไขปัญหาปลายน้ำ [37,38] จึงต้องมีลูกค้าและผู้ใช้พนักงานตลอดจนผู้เกี่ยวข้องในการพัฒนากระบวนการตรวจทานเพื่อให้ได้มุมมองทั้งหมดถือว่า รีวิวมีประโยชน์ที่สำคัญทั้งหมดเหตุการณ์สำคัญในการส่งความต้องการเอกสาร รวมทั้งความสมบูรณ์ของระบบเอกสารข้อกำหนด ข้อกำหนดของระบบเอกสาร SRS และก่อนเส้นหลักทั้งหมดรีวิวทั้งหมดควรทำรายการระบุปัญหาและชุดตกลงตามการดำเนินการ เป็นรีวิวต้องผูกพันเวลาสำคัญสามารถค่าใช้จ่ายการดำเนินการ และสามารถประโยชน์ต่อการทำกิจกรรมทบทวนก่อนระบุ และจัดการข้อผิดพลาดที่ชัดเจนล่วงหน้านอกจากนี้ ควรจะตรวจทานเอกสารกระจาย และอ่านล่วงหน้าก่อนการประชุมเพื่อให้สมาชิกทุกคนสามารถมาเตรียมความพร้อมx ต้นแบบจะเป็นประโยชน์สำหรับการตรวจสอบการการตีความของวิศวกรซอฟต์แวร์ของผู้ความต้องการ มีส่วนได้เสียแสดงความคิดเห็นที่เป็นประโยชน์มากขึ้นเมื่อโต้ตอบกับต้นแบบกว่าเมื่อพวกเขาเพียงแค่อ่าน SRS ในความเป็นจริงความต้องการพัฒนาโดยใช้ต้นแบบมีแนวโน้มที่จะหอมระเหยน้อยกว่าพัฒนาโดยx ตรวจสอบแบบจำลองใช้ในการตรวจสอบการความถูกต้องของระบบ แบบจำลองแนวคิดสามารถสามารถอย่างเป็นกิจจะลักษณะ หรือบางตรวจสอบ อย่างใดอย่างหนึ่งโดยวิเคราะห์แบบฟิกแบบคง หรือในกรณีของข้อกำหนดที่เป็นทาง โดยใช้ทางเหตุผลเพื่อพิสูจน์คุณสมบัติของระบบ ในระบบที่สำคัญ มีการพบว่ากิจกรรมสร้างโมเดลอย่างเป็นกิจจะลักษณะ ระบบสามารถในตัวให้บริการการระบุข้อผิดพลาดเช่น ambiguities และความขัดแย้ง อย่างไรก็ตามต้นทุนของการสร้างทางรุ่นปกติสามารถเฉพาะ ได้รับการพิสูจน์ในสูงระบบการประกันx ใช้ทดสอบในการตรวจสอบที่ยอมรับในผลิตภัณฑ์ที่เสร็จสมบูรณ์ตอบสนองความต้องการของการระบบ ทุกความต้องการ รวม nonfunctional อาจคน ต้องดังระบุในแบบวิธีที่พวกเขาสามารถตรวจ7. ความต้องการจัดการ เกือบทุกผลิตภัณฑ์ซอฟต์แวร์ยังคงเปลี่ยนแปลง และพัฒนาตลอดชีวิตของมัน หากเปลี่ยนแปลงไม่มีจัดการดี คุณภาพของการผลิตภัณฑ์จะเสื่อมสภาพ และจะเปลี่ยนแปลงในอนาคตกลายเป็นยากขึ้นเพื่อรองรับจัดการการเปลี่ยนแปลงเป็นเรื่องอย่างระมัดระวังการควบคุมการเปลี่ยนแปลงความต้องการ ทั้งสองในระหว่างการพัฒนาและต่อไปนี้ใช้งานของผลิตภัณฑ์ จะจัดการการเปลี่ยนแปลงได้รับการสนับสนุนผ่านการติดตามความต้องการการจัดการสถานะปัจจุบันของข้อกำหนดทั้งหมดและถึงวางข้อกำหนดภายใต้การควบคุมโครงแบบ การวัดความผันผวนของความต้องการในโครงการสามารถให้เป็นประโยชน์เจาะลึกกระบวนการความต้องการโดยรวมx ความต้องการติดตามถูกกำหนดให้เป็น "_FITTEDความสามารถในการอธิบาย และทำตามชีวิตของการข้อกำหนด ในทั้งไป และย้อนกลับทิศทาง (เช่น จากกำเนิด ผ่านการพัฒนาและข้อมูลจำเพาะ เพื่อความต่อมาปรับใช้และการใช้งาน และระยะเวลาของอย่างต่อเนื่องและการเกิดซ้ำในการใด ๆ เหล่านี้ระยะ) " [39] สืบค้นกลับกำหนดความสัมพันธ์ระหว่างวัตถุทั้งสอง ตัวอย่าง แนวตั้งขั้นตอนซ่อมสัมพันธ์ต้นทุนความต้องการ 1-2ออกแบบ 5รหัส 10ทดสอบหน่วย 20ระบบทดสอบ 50บำรุงรักษา 200รูปที่ 5 ต้นทุนในการซ่อมแซมซอฟต์แวร์ข้อผิดพลาดในขั้นตอนต่าง ๆ ติดตามระหว่างความต้องการระดับล่างและระดับสูงหนึ่งสามารถกำหนดเป็น "ปรุง"ความสัมพันธ์ ในขณะที่ติดตามจากการปฏิบัติสามารถกำหนดวิธีการเพื่อความต้องการ"ใช้" ความสัมพันธ์ ติดตามผลโดยทั่วไปเมทริกซ์ การเชื่อมโยงหลายมิติ รวมเทคนิค หรือเครื่องมือตรวจสอบย้อนกลับที่ถูกฝังอยู่ในความต้องการเครื่องมือบริหาร [39,40]เมื่อมีเสนอการเปลี่ยนแปลง การติดตามผลโครงสร้างพื้นฐานให้สามารถสืบค้นกลับการเหตุผลอยู่เบื้องหลังความต้องการคุดนั้นปัจจุบันการตัดสินใจอาจทราบคน และtrace forward to artifacts such as designdocuments, code, and test cases in order to morecompletely understand how to implement thechange and to identify and mitigate its possibleside effects. Unnecessary traces lead to amaintenance nightmare, while too littletraceability provides inadequate support for thechange process [41]. Therefore links should becarefully established to provide necessary supportfor change analysis activities.x Change requests should be managedsystematically. Many requirements managementpackages now also incorporate “request forchange” (RFC) features. Once a RFC has beencreated, an impact analysis is performed and thechange is prioritized and assessed for in terms ofits benefits, cost, and effort. Any change that isapproved should go through the same rigorousanalysis and quality assurance as the initialrequirements.x Requirements attributes are an importantpart of the change management process. Eachrequirement is assigned a unique identifier fortracking purposes, and auxiliary attributes are usedto record information such as change dates,rationales, and current status.8. Conclusions In this tutorial, we have emphasized a moretraditional approach to requirements engineeringin which the requirements process involveselicitation, analysis, specification, validation, andmanagement. Recently there has been a trendtoward adopting more agile development methods[42]. Among other things the agile philosophy
has challenged the accepted wisdom that the cost
of change increases over time and has adopted a
more flexible approach that embraces the
changing requirements of the customer throughout
the development process. Agile methods
minimize the importance of an upfront
requirements phase, instead focusing upon
delivering executable code to the customer as
early as possible. Although agile methods are
gaining in popularity, Boehm and Turner point out
[43] that they are more suited to smaller, volatile,
and non-critical projects. The more mainstream
agile methods targeted at larger, more complex
systems, or those developed in distributed
environments, adopt many of the requirements
practices described in this tutorial.
For readers interested in learning more about
software requirements, there are numerous books,
several of which have been referenced in this
tutorial [3,4,7,11,12,15] that provide more detailed
discussions on a variety of related topics.
การแปล กรุณารอสักครู่..
