UE20CS303 Unit1 Notes
UE20CS303 Unit1 Notes
Jayashree R
Unit-1
Introduction
- Software engineering
• Systematic, disciplined, quanti able approach towards development,
operation and maintenance
Fundamental drivers of SE
• Elaborate documentation
• Absence/minimal bugs
• Impactful to business’s; quality and resilience
- Software is expensive
• Labour intensive
- Diversity: many types of software systems with di erent techniques and methods
Software Lifecycle
• Stages
- Requirement analysis:
- Design
• Entry Criteria: Preparation of Software Requirement Speci cation
• Outlines functionality
• Interface relationship and dependencies
• Details of interface
• Three stages
- Internal tests
- Stakeholder Reviews
- Product Lifecycle
• Stages
- Introduction: product has been created and put on market
• Product may not be popular
- Usage
• For short projects where requirements are understood
- Usage
• Similar to waterfall model
• Prototyping: Build throw-away and evolutionary prototypes to adapt to
change
Advantages Disadvantages
More Stable
Reduces over-functionality
- Usage
• Projects where major requirements are de ned
- Rapid prototyping
Advantages Disadvantages
- Upfront planning
- Suitable when there is a clear de nition of what needs to be achieved
- Agile
• Variety of methods that encourage
• Agile manifesto
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
Little to no planning
- De ned by
• Roles
- Org is split into small cross-functional, self-organising teams
- Scrum team: made up of contributors to the deliverable
• Attended by
- Product owner: prioritise backlog items and propose sprint goal
- Development team: determine how many backlog items can be
completed and how to do it
• Inputs to meeting
- Product backlog
• Activities
- Identify sprint goal
- Choose stories
- Sprint review
- Sprint retrospective
• Optimises the process after each iteration
• Artifacts
- Split work into a list of small concrete deliverables; sort on priority
and e ort estimate
• Scrum team estimates work associated with each story and ranks
them in order of importance
- Focus on simplicity
- Practices in XP
• Planning game: scope of next release
• Lean Agile: similar to agile methodology but works faster with more
sustainable results
- Boosts performance
Advantages Disadvantages
Requirement trade o
- Forms of Component
• During development: UML
• Packaging: .zip
Product lines
• Reuse is imperative
• Advantages
- Create software for di erent products
- User variability to customise software to each product
Requirements engineering
• Properties:
- Clear: precise and simple language
- Veri able: clear, testable criterion and cost-e ective process to check it has
been realised
- Prioritized
- Quanti able: aids in testing and verifying
- Feasibility study
• Done before beginning a project
• Activities
- Figure out Client/sponsor/user would have a stake in project
- Scope on a high-level
- Financial projections
• Requirements elicitation
- Work with all stakeholders to gather their needs, articulate the problem,
identify and negotiate con icts: establish clear scope and boundary for a
project
- Involves
• Understanding problem, domain, needs and constraints
• Identifying clear objectives
• Writing business objectives for the project
- Elicitation techniques
• Approach depends on
• Active
- Ongoing interaction b/w stakeholders and users
• Passive
- Infrequent interaction
• High-level statements
• Can be veri ed
• Types of models
- Structural
• Static aspects of the system
- Behaviour models
• Dynamic aspects of the system
- Negotiate requirements
• Gather requirements
• Structural
• Behavioural
• Grouping
• Annotate
• Association
• Generalisation
• Realisation
• User support
• Team communication
• Maintenance and evolution
- Characteristics of documentation
• Accurate and current
• Appropriate for audience
• Maintained online
- External interface: how does it interact with people, hardware and software
• Implementation language
• Policies for DataBase integrity
• Resource limit
• Security
• Operating environment
• Requirements validation
- Repairing requirements downstream can be expensive
- Validation and veri cation
- Requirement reviews
• Consistency
• Completeness
• Veri ability
• Comprehensibility
• Traceability
• Adaptability
- Prototyping
• Facilitates user involvement and ensures users and engineers have same
interpretation
- Model validation
• Model represents all essential functional requirements (Use case model)
- Acceptance criteria
• See if any requirements match the acceptance criteria
• Requirements management
- Potential reasons for requirement change
• Better understanding of the problem
• Customer internalising
• Evolving environment and Technology
- Two facets
• Ensure requirements are addressed in all phases of the lifecycle