Adv Software Engineering Lect1
Adv Software Engineering Lect1
Adv Software Engineering Lect1
Engineering
Today’s Lecture: Agenda
• Course Outline
• Deliverables
• Lesson 1
Course Outline
• Text Book:
Software Engineering by Ian Sommerville
Software Engineering: A practitioner’s Approach by Roger S.
Pressman, Seventh Edition.
• References:
• Software Requirements Using The Unified Process: A Practical
Approach, Daniel R. Windle and L. Rene Abreo, Prentice Hall, 2002
• Mastering the Requirements Process, Suzanne Robertson & James
Robertson, Addison-Wesley, 2006.
• Managing Software Requirements: A Use Case Approach, Dean
Leffingwell and Don Widrig , 2nd Edition, Addison Wesley, 2003
• Recent research papers
• Case studies
Course Outline
• Basic
• Introduction to Software Engineering
• Software life cycle model.
• SRS Document
• Functional and non-functional requirements
• Software Design
Course Outline
• Advance
• Module/Functional Design
• Cohesion/Coupling
• Coding
• Debugging
• Integration
• White/Black Box Testing
• Software Maintenance
Course Outline
• Advance
• UML
• Formal Methods
• Software Reuse
• Software System Re-engineering
• Software Reverse Engineering
• Goal-based Software Engg.
This is a programming extensive course.
Programming questions will be part of both mid terms, final and project.
Scope and necessity of software engineering
• Software engineering is an engineering approach for
software development.
rfall Model
rfall model
Model or Evolutionary Model
Classical Waterfall Model
• The classical waterfall model is intuitively the most obvious
way to develop software.
• Thus, this model can be considered to be a theoretical way of
developing software.
• But all other life cycle models are essentially derived from the
classical waterfall model. So, in order to be able to appreciate
other life cycle models it is necessary to learn the classical
waterfall model.
Classical Waterfall Model
• Classical waterfall model divides the life cycle into the
following phases.
• Feasibility Study
• Requirements Analysis and Specification
• Design
• Coding and Unit Testing
• Integration and System Testing
• Maintenance
Activities undertaken during feasibility study
24
Requirements Analysis Stages
• Necessity checking
• Consistency checking
• Completeness checking
25
Necessity Checking
• The need for the requirement is analyzed.
• In some cases, requirements may be proposed which
don’t contribute to the business goals of the organization
or to the specific problem to be addressed by the system
• Sometimes the customers want to include every thing in the software
product which they do not need
• Analyze in context of budget, schedule, technology and conformance to
objectives of client
26
Consistency and Completeness Checking
27
Activities undertaken during design
• Example 2: Technical issues are not clear Suppose a project involves writing a
compiler and the development team has never written a compiler. In such a case, the
team can consider a simple language, try to build a compiler in order to check the
issues that arise in the process and resolve them. After successfully building a small
compiler (prototype), they would extend it to one that supports a complete language.
Spiral model
• The diagrammatic representation of this model appears
like a spiral with many loops.
• The exact number of loops in the spiral is not fixed.
• Each loop of the spiral represents a phase of the
software process. For example, the innermost loop might
be concerned with feasibility study. The next loop with
requirements specification, the next one with design,
and so on.
• Each phase in this model is split into four sectors (or
quadrants). The following activities are carried out during
each phase of a spiral model.
Spiral model
Spiral model