Software Engineering I
Software Requirements
Miguel Morales – Computer Science and Software Engineering Department
Copyright By PowCoder代写 加微信 powcoder
• Understand and remember the definition of software requirement.
• Understand and be able to explain types of software requirements.
• Know and apply different requirement elicitation and specification techniques.
Software Requirements
• A software requirement is a property that must be exhibited by something in order to solve some problem in the real world [SWEBoK].
• All development projects have requirements.
• Requirements are the basis for design.
• The requirements should not imply any specific implementation [CMMI-DEV].
Software Requirements
• The purpose of a software engineer is to …
… transform the stakeholder user- oriented view of desired capabilities …
into a technical view of a solution …
… that meets the operational needs of the user [CMMI-DEV].
Software Requirements
• Development of requirements includes the following activities:
– Elicitation and analysis of the customer needs, expectations, and constraints.
– Specification of the stakeholder needs.
– Establishment of the quality attributes.
Software Requirements
• Functional requirements describe the functions that the software is to execute.
• Quality requirements* are the ones that act to constrain the solution. – Performance efficiency
– Compatibility
– Usability
– Reliability
– Security
– Maintainability – Portability
* Also known as non-functional requirements.
Functional Requirements
• A user journey is a timeline of user actions that describes the interactions between the user and the system.
1. The user decides how many days the game would last. 2. The user chooses a name for their team.
3. The user recruits a monster.
4. The user buys an item.
5. The user sets a battle. 6. …
Functional Requirements
• Use case diagram
– Boundary
– Associations – Actors
– Use cases
Functional Requirements
Functional Requirements
• Use case specification
ID: UC_001
Name: Save an item for purchase
Actor: Customer
Pre-conditions: The user has logged on to the system Post-conditions: The item has been saved
Basic flow
The user clicks ….
The system shows …
Alternate flow
Exceptions
Type of exception
Description
Functional Requirements
Graphical User Interface
• A wireframe is a low-fidelity sketch of your system.
• Immediate Feedback (system responses to users’ actions).
• Brevity and Information density.
• Adaptability and Flexibility.
• Error management (quality of error messages).
• Consistency.
Guidelines and Heuristics
• Sketch GUI design before coding.
• Walk through GUI use case flows before coding.
• Be aware of aesthetics.
• Decouple actions from GUI and unit test separately.
• Expect to change GUI.
• Understand and remember the definition of software requirement.
• Understand and be able to explain types of software requirements.
• Know and apply different requirement elicitation and specification techniques.
程序代写 CS代考 加微信: powcoder QQ: 1823890830 Email: powcoder@163.com