Sunday, November 04, 2007

Guide to Software Engineering Part 1

Definition of Software Engineering
It is a systematic approach to building (maintaining / operating) high quality software using a disciplined process.


Software Engineering Building Blocks




Tools: Programming Language, IDE (Eclipse), word processor, rational rose etc.

Methods: Skill set, OOP, OOAD, SDLC tasks like requirement, analysis, design and code.

Process Model: Defines a framework on how to go about doing things, such as Waterfall model and prototyping model.

Quality Focus: Activities that ensures there is quality in every step of software engineering process.


Definition of Software Process
It is a series of steps to produce a piece of quality software.

Software Process Framework



Software Process Models
Waterfall Model
A Systematic sequential approach to development

Disadvantage:
unrealistic as changes are inevitable
Working version available only at the end


RAD Model
High speed version of waterfall model and it is a component based approach. COTS and automatic code generator are heavily used during the development.

Disadvantage:
Require more human resource
Good modularization required Technical Risk


Prototyping Model
This approach is used when requirements are “fuzzy”. Where users are unclear of detailed business processes and developers require more understanding.

Disadvantage:
different perspective between user and developer
User – working version
Developer – quick and dirty prototype
Developer tends to cut corners and talking shortcuts to make something work.



Posted by Zack at 1:40 PM