100 likes | 118 Views
Explore the key concepts of software engineering focusing on requirements engineering. Learn about various types of requirements, process models, and the importance of developing good software effectively. Dive into the structured activities required for software system development.
E N D
CSC-3324: Chapter 4 Title: What is a requirement? Mandatory reading: Sommerville 6, 7th ed., Chap.: 7
Software engineering is concerned with theories, methods and tools for professional software development Maintainability, Dependability, Efficiency, Usability Wrap up on Chap. 1, 2 & 3... Understandable, Visible, Supported, Accepted, Reliable, Rapid, etc. A quick and cheap study of the project requirements in order to assess the business opportunity, the technology enablers and the schedule... • Component-based development • The system is assembled from • existing components • The waterfall model • Separate and distinct phases • of specification and • development • Prototyping development • Specification and development • are interleaved Structured set of activities (steps) required to develop a software system.... • What isSoftware Engineering (SE) ? • The major goal of SE is to produce good software cost effectively… What is good software? • In order to produce good software, we need to follow a good SE process… What is a good process? • Some SE process models are widely used and universally recognized… • Before launching any SE process, we should first be perform a feasibility study...
Requirements Engineering... • The process of establishing the services that the customer requires from a system and the constraintsunder which it operates and is developed... • The requirements themselves are the descriptions of the system services and constraints that are generated during the requirements engineering process…. • Engineering consists of collecting, analyzing and documenting the requirements in order to better understand/Present them...
What is a requirement? • An attribute that the projected system must fulfill… • It may range from a high-level abstract statement of a service or of a system constraint to a detailed mathematical functional specification. • Examples… • The word Requirement is not uniformly used...
Some common problems... • Precision... • Completeness... • Consistency...
Types of requirements... • User requirements • Statements in natural language plus diagrams of the services the system provides and its operational constraints. Written for customers… (Usually during the Feasibility study…) • Information system requirements • A structured document setting out detailed descriptions of the system services. Written as a contract between client and contractor(Usually during the Req. Eng.…) • Software specification • A detailed software description which can serve as a basis for a design or implementation. Written for developers (Design)
Functional and non-functional requirements • Functional requirements • Non-functional requirements • Domain requirements • Requirements that come from the application domain of the system and that reflect characteristics of that domain
Functional requirements • Statements of services the system should provide, how the system should react to particular inputs and how the system should behave in particular situations. • Functional user requirements may be high-level statements of what the system should do but functional system requirements should describe the system services in detail
Non-functional requirements • Constraints on the services or functions offered by the system such as timing constraints, constraints on the development process, standards, etc. • Constraints are I/O device capability, system representations, etc. • Reliability, Response time and Storage requirements. • Mandating CASE system, programming language or development method
Domain requirements • Derived from the application domain and describe system characteristics and features that reflect the domain • May be new functional requirements, constraints on existing requirements or define specific computations • If domain requirements are not satisfied, the system may be unworkable