Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
100% found this document useful (1 vote)
473 views

Software Engineering Short Notes

Software engineering is an engineering discipline concerned with all aspects of software development. It differs from other engineering disciplines in that requirements are difficult for customers to specify fully and for developers to understand completely. Problems in software development include unsatisfactory quality, high costs, difficulty maintaining software, and inaccurate time and cost estimates. Software engineering focuses on practical software development and delivery, while computer science is the underlying theory. Requirements need to change due to errors, new technologies, changed user needs, and policy changes. Software quality attributes include efficiency, correctness, reliability, usability, robustness, maintainability, modularity, reusability, and portability.

Uploaded by

Shan Pathiraja
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
473 views

Software Engineering Short Notes

Software engineering is an engineering discipline concerned with all aspects of software development. It differs from other engineering disciplines in that requirements are difficult for customers to specify fully and for developers to understand completely. Problems in software development include unsatisfactory quality, high costs, difficulty maintaining software, and inaccurate time and cost estimates. Software engineering focuses on practical software development and delivery, while computer science is the underlying theory. Requirements need to change due to errors, new technologies, changed user needs, and policy changes. Software quality attributes include efficiency, correctness, reliability, usability, robustness, maintainability, modularity, reusability, and portability.

Uploaded by

Shan Pathiraja
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

Software Engineering

Software Engineering is an engineering discipline which is concerned with all aspects of software
production from early stages of system specification through to maintaining the system after it has gone
into use.

Main difference in software engineering compared to other engineering disciplines


 It’s difficult for a customer to specify requirements completely
 It’s difficult for the develop to understand fully the customer needs
 It’s difficult to test software exhaustively
 Software requirement changes regularly

Problem or Failure with Software Development


 The quality of the software is not satisfactory
 Software is costly
 Software is difficult to maintain
 Time schedule and Cost estimates of many software projects are grossly inaccurate
 The productivity of the software people is not satisfactory to meet the demand

Difference between Software Engineering and Computer Science


Computer Science is the theory of fundamentals and Software Engineering is concerned with
practicalities of developing and delivering useful software.

Difference between Software Engineering and System Engineering


System Engineering is concerned with all aspects of computer based system development including
hardware, software and processor engineering. Software Engineering is the part of this process.

Reasons of Software needs to be changed


 Errors in the system
 Availability of new technology
 Changes in the user requirements
 Changes in the enterprise or Government policy

Software Quality Attributes

1. Bohem’s Classification
Current usefulness
The qualities expected from a software system in a user’s point of view
 Efficiency  Correctness
 Reliability  User friendliness
 Usability  Robustness

Potential usefulness
The qualities expected from a software system in a developer’s point of view
 Maintainability
 Modularity
 Reusability
 Portability
2. Mc Call’s Classification
Product Operation Product Revision Product Transition
Efficiency Maintainability Reusability
Reliability Flexibility Portability
Usability Testability Interoperability
Correctness
User friendliness
Robustness

The Software process Characteristics


 Understandability  Robustness
 Visibility  Maintainability
 Acceptability  Rapidity
 Reliability  Supportability

Water fall model processes


 Software Requirement Analysis and Specification
 Software Design
 Coding (Implementation)
 Testing
 Maintenance

RAD model processes


 Business Modeling
 Data Modeling
 Process Modeling
 Application Generation
 Testing and Turnover

Four Main task regions in Spiral Model


 Determine goals, alternatives, constraints
 Evaluate alternatives and risks
 Develop and Test
 Plan

Prototype
A prototyping is the smaller version of the system

Prototyping Techniques
1. Throw away prototyping
2. Evolutionary prototyping

Agile Process
Agile software engineering combines a philosophy and a set of development guidelines
Requirement Engineering Process
1. Feasibility Study
2. Requirement analysis and elicitation
3. Requirement Specification
4. Requirement Validation

Requirement Documents and Readers of Requirement Documents


User Requirements System Requirements Software Requirements Specification
System end users System end users Software Developers
System Architects System Architects System Architects
Client Engineers Client Engineers
Client Mangers Software Developers
Contractor Managers

Types of Requirements
 Functional Requirements
 Non Functional Requirements
 Domain Requirements

Requirement Analysis Tools


Traditional Structured Methods Object Oriented Methods
Entity Relationship Diagrams Use Case Diagrams
Data Flow Diagrams Class Diagrams
Entity State Transition Diagrams Sequence Diagrams
State Transition Diagrams

Feasibility Study
A feasibility study is a short and focused study which is aimed to check the feasibility of the project
considering resources, cost/benefit, technology availability etc.

Requirement Specification
A detailed and precise description of system requirements is set to act as a basis for a contract between
customer and software developer.

Requirements Validation
Requirement validation is concerned with showing that the requirements actually define the system the
customer wants.

Requirement Validation Checks


 Validity checks  Realism checks
 Consistency checks  Verifiability
 Completeness checks

Requirement Validation Techniques


 Requirement Reviews  Test case generation
 Prototyping  Automated consistency analysis
Design Activities involved in design process
 Identification of sub systems
 Identification of software components
 Identification of software architecture
 Data Design
 Data Structure design
 Algorithm Design
 Interface Design
 Design Specification

Software Design Principles


 Abstraction
 Modularity
 Encapsulation
 Polymorphism

Software Design Techniques


 Top Down Decomposition
 Bottom Up Design
 Jason Structured Design
 Object Oriented Design

Software Configuration Management


Software Configuration Management is the development and application of standards and procedures
for managing an evolving software product.

You might also like