Announcement!

Only Lecture 7,8 and the first 15 slides of lecture 9 are included in Hourly 3.
Please find them at Downloads link.

Saturday, September 26, 2009

Software Engineering Fundamentals

0 comments
What is Software Engineering?
  • is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software.
Engineering
  • is the science, discipline, art and profession of acquiring and applying technical, scientific and mathematical knowledge to design and implement materials, structures, machines, devices, systems, and processes that safely realize a desired objective or inventions.
Software Engineering’s Focus
  • To solve problems
2 Parts
  1. Analysis – breaking it into pieces that we can understand and try to deal with.
  2. Synthesis – putting together of a large structure from small building blocks.
Analysis and Synthesis
Software Engineering Layers
  • Layers according to Roger Pressman
  • Process layer is the foundation
  • Methods provide the technical “how-to’s” for building software
  • Tools provide automated or semi automated support for the process and methods.
Relationship between Computer Science and Software Engineering
Generic Process Framework
Used as a basis for process models and is applicable to the vast majority of software projects:
  • Communication -collaboration with customer & other stakeholders
  • Planning- description of the tasks to be conducted, risks, resources required, work products to be produced.
  • Modeling –creation of models
  • Construction – code generation and testing
  • Deployment – delivered to the customer
What is a Process Model?
  • Originally proposed to bring order to the chaos of software development
  • Useful to software engineering work and an effective roadmap for software teams
  • Define a distinct set of activities, actions, tasks, milestones and work products that are required to engineer high-quality software.
Problems with Waterfall Model
  1. Real projects rarely follow the sequential flow that the model proposes.
  2. It is difficult for the customer to state all requirements explicitly.
  3. Working version of the program will not be available until late in the project time-span.
Problems with Incremental Model
  • Each additional build has to be incorporated into the existing structure without degrading the quality of what has been build to date.
  • The incremental models can easily degenerate into the build and fix approach.
  • Design errors become part of the system and are hard to remove.
  • Clients see possibilities and want to change requirements.
Rapid Application Development (RAD) Model
  • An incremental process model that emphasizes short development cycle
  • “High-speed” adaptation of the waterfall model.
Drawbacks of RAD
  1. For large projects, RAD requires sufficient human resources to create the right number of RAD teams.
  2. If developers & customers are not committed to rapid-fire activities, RAD projects will fail.
  3. If the system cannot be properly modularized, building the components will be problematic
  4. If high-performance is an issue, RAD may not work.
  5. RAD may be inappropriate when technical risks are high.
Prototyping Model
  • Assists the software engineer and the customer to better understand what is to be built when requirements are fuzzy.
Drawback of Prototyping Model
Customer sees what appears to be a working version of the software and presumes that it is the final thing.
The developer often makes implementation compromises in order to get a prototype working quickly.
Spiral Model
  • It couples the iterative nature of prototyping with the controlled and systematic aspects of the waterfall model.
  • Proposed by Boehm
Drawbacks of the Spiral Model
  • It may be difficult to convince customers that the evolutionary approach is controllable.
  • It demands risk assessment expertise and relies on this expertise for success.
  • If a major risk is uncovered and managed, problems will occur.

0 comments:

Post a Comment