Software Engineering Inportant Notes
Software Engineering Inportant Notes
Question:
1. What is Software and
Software Engineering?(VI)
2. Describe the different SDLC
techniques.
3. What is Software
Engineering?
4. Describe Software
Development Models &
Architecture
5. Describe Software Project
Management (SPM)
6. Describe Software Metrices
7. Describe Software
Requirements
8. Describe Software
Configuration
9. Describe Software Quality
10. Describe Software Design
11. Describe Software
Reliability
12. Difference between
Software Testing and
Debugging
13. What is the Need of
Software Engineering?
14. What does a Software
Engineer Do?
15. Classical Waterfall Model
16. Iterative Waterfall Model
17. Spiral Model
18. Incremental process model
19. Rapid application
development model(RAD)
20. RAD Model vs Traditional
SDLC
21. Agile Software
Development
22. Extreme Programming (XP)
23. SDLC V-Model
24. Comparison of different life
cycle models
25. Describe COCOMO Model
26. Describe Capability
maturity model (CMM)
27. Describe Project
Management Process
28. Describe Project size
estimation techniques
29. How to write a good SRS
for your Project
30. Quality Characteristics of a
good SRS
31. Waterfall model vs
Incremental model
32. v-model vs waterfall model
33. Manual testing vs
Automation testing
34. Sanity Testing vs Smoke
Testing
35. Alpha Testing vs Beta
Testing
36. Testing and Debugging
37. Functional vs Non-
functional Testing
38. Waterfall Model vs Spiral
Model
39. RAD vs Waterfall
40. Unit Testing vs System
Testing
41. Load Testing vs Stress
Testing
42. Frontend Testing vs
Backend Testing
43. Agile Model vs V-Model
Even after the user has desired software in hand, the advancing
technology and the changing requirements force the software
product to change accordingly. Re-creating software from scratch
and to go one-on-one with requirement is not feasible. The only
feasible and economical solution is to update the existing
software so that it matches the latest requirements.
Requirement gathering
Software design
Programming
Software Design Paradigm
Design
Maintenance
Programming
Programming Paradigm
Coding
Testing
Integration
Need of Software Engineering
Operational
Transitional
Maintenance
Budget
Usability
Efficiency
Correctness
Functionality
Dependability
Security
Safety
Transitional
Portability
Interoperability
Reusability
Adaptability
Maintenance
This aspect briefs about how well a software has the capabilities
to maintain itself in the ever-changing environment:
Modularity
Maintainability
Flexibility
Scalability
Communication
This is the first step where the user initiates the request for a
desired software product. He contacts the service provider and
tries to negotiate the terms. He submits his request to the service
providing organization in writing.
Requirement Gathering
System Analysis
At this step the developers decide a roadmap of their plan and try
to bring up the best software model suitable for the project.
System analysis includes Understanding of software product
limitations, learning system related problems or changes to be
done in existing systems beforehand, identifying and addressing
the impact of project on organization and personnel etc. The
project team analyzes the scope of the project and plans the
schedule and resources accordingly.
Software Design
Coding
Integration
Implementation
Disposition
Waterfall Model
The software is first developed on very small scale and all the
steps are followed which are taken into consideration. Then, on
every next iteration, more features and modules are designed,
coded, tested and added to the software. Every cycle produces a
software, which is complete in itself and has more features and
capabilities than that of the previous one.
Spiral Model
V – model
This model is not suitable for large software projects but good one
for learning and experimenting.
Software Project Management
Question:
1. What is CPM and PERT?
What is the Difference?(I)
2. By giving example,
Construct the project network
for a project using CPM, PERT
and show the utilisation using
gantt chart.
Software Creation
Software Project Management
Managing People
Act as project leader
Lesion with stakeholders
Managing human resources
Setting up reporting hierarchy etc.
Managing Project
Defining and setting up project scope
Managing project management activities
Monitoring progress and performance
Risk analysis at every phase
Take necessary step to avoid or come out of problems
Act as project spokesperson
Software Management Activities
Project Planning
Scope Management
Project Estimation
Project Planning
Scope Management
Project manager can estimate the listed factors using two broadly
recognized techniques –
Decomposition Technique
Putnam Model
This model is made by Lawrence H. Putnam, which is based
on Norden’s frequency distribution (Rayleigh curve). Putnam
model maps time and efforts required with software size.
COCOMO
COCOMO stands for COnstructive COst MOdel, developed by
Barry W. Boehm. It divides the software product into three
categories of software: organic, semi-detached and
embedded.
Project Scheduling
Baseline
Change Control
The risk and uncertainty rises multifold with respect to the size of
the project, even when the project is developed according to set
methodologies.
Gantt Chart
Resource Histogram
Software Requirements
Question:
1. What are software metrics?
(I)
2. What is Requirement
Elicitation? What are different
Requirement Elicitation
Techniques
3. What is Requirement
Engineering?
The software requirements are description of features and
functionalities of the target system. Requirements convey the
expectations of users from the software product. The
requirements can be obvious or hidden, known or unknown,
expected or unexpected from client’s point of view.
Requirement Engineering
Feasibility Study
Requirement Gathering
Software Requirement Specification
Software Requirement Validation
Requirement Gathering
Interviews
Task analysis
Domain Analysis
Brainstorming
Prototyping
Observation
Clear
Correct
Consistent
Coherent
Comprehensible
Modifiable
Verifiable
Prioritized
Unambiguous
Traceable
Credible source
Software Requirements
Functional Requirements
Examples -
Search option given to user to search from various invoices.
User should be able to mail any report to management.
Users can be divided into groups and groups can be given
separate rights.
Should comply business rules and administrative functions.
Software is developed keeping downward compatibility
intact.
Non-Functional Requirements
Security
Logging
Storage
Configuration
Performance
Cost
Interoperability
Flexibility
Disaster recovery
Accessibility
easy to operate
quick in response
effectively handling operational errors
providing simple yet consistent user interface
User acceptance majorly depends upon how user can use the
software. UI is the only way for users to perceive the system. A
well performing software system must also be equipped with
attractive, clear, consistent and responsive user interface.
Otherwise the functionalities of software system can not be used
in convenient way. A system is said be good if it provides means
to use it efficiently. User interface requirements are briefly
mentioned below -
Content presentation
Easy Navigation
Simple interface
Responsive
Consistent UI elements
Feedback mechanism
Default settings
Purposeful layout
Strategical use of color and texture.
Provide help information
User centric approach
Group based view settings.
Software System Analyst
Advantage of modularization:
Example
Cohesion
Types of DFD
Level 2 - At this level, DFD shows how data flows inside the
modules mentioned in Level 1.
Higher level DFDs can be transformed into more specific
lower level DFDs with deeper level of understanding unless
the desired level of specification is achieved.
Structure Charts
module.
Condition - It is represented by small diamond at the base
of module. It depicts that control module can select any of
sub-routine based on some condition.
Jump - An arrow is shown pointing inside the module to
depict that the control will jump in the middle of the sub-
module.
Loop - A curved arrow represents loop in the module. All
sub-modules covered by loop repeat execution of module.
Structured English
IF-THEN-ELSE,
DO-WHILE-UNTIL
Analyst uses the same variable and data name, which are stored
in Data Dictionary, making it much simpler to write and
understand the code.
Example
Structured Design
Design Process
The whole system is seen as how data flows in the system
by means of data flow diagram.
DFD depicts how functions changes data and state of entire
system.
The entire system is logically broken down into smaller units
known as functions on the basis of their operation in the
system.
Each function is then described at large.
Object Oriented Design
Bottom-up Design
The bottom up design model starts with most specific and basic
components. It proceeds with composing higher level of
components by using basic or lower level components. It keeps
creating higher level components until the desired system is not
evolved as one single component. With each higher level, the
amount of abstraction is increased.
Parameter Meaning
n Vocabulary n1 + n2
N Size N1 + N2
V(G) = e – n + 2
Where
e is total number of edges
n is total number of nodes
The Cyclomatic complexity of the above module is
e = 10
n = 8
Cyclomatic Complexity = 10 - 8 + 2
= 4
Function Point
External Input
Software system may need to share its files with some external
software or it may need to pass the file for processing or as
parameter to some function. All these files are counted as
external interface files.
Inputs 3 4 6
Outputs 4 5 7
Enquiry 3 4 6
Files 7 10 15
Interfaces 5 7 10
The table above yields raw Function Points. These function points
are adjusted according to the environment complexity. System is
described using fourteen different characteristics:
Data communications
Distributed processing
Performance objectives
Operation configuration load
Transaction rate
Online data entry,
End user efficiency
Online update
Complex processing logic
Re-usability
Installation ease
Operational ease
Multiple sites
Desire to facilitate changes
No influence
Incidental
Moderate
Average
Significant
Essential
Then,
Cost = $ / FP
Quality = Errors / FP
Productivity = FP / person-month
Software Testing Overview
Question:
1. Why is Software testing
performed?(VI)
2. What is difference between
Software Validation and
Software Verification?(VVI)
3. Difference between Error
and Fault?(VI)
4. What is difference between
Black Box and White Box
Testing?(VVVVVVI)
5. Explain the different
testing performed at Different
Levels of SDLC?(Unit,
Integration, System,
Acceptance, Regression)(VVI)
6. What is difference between
System Testing and
Regression Testing? VVI
Software Testing is evaluation of the software against
requirements gathered from users and system specifications.
Testing is conducted at the phase level in software development
life cycle or at module level in program code. Software testing
comprises of Validation and Verification.
Software Validation
Testing Approaches
Functionality testing
Implementation testing
Black-box testing
Unit Testing
Integration Testing
Before Testing
Reverse Engineering
Forward Engineering
Component reusability
In OOP, the objects are designed are very specific to their concern
and have fewer chances to be used in some other software.
CASE tools can be broadly divided into the following parts based
on their use at a particular SDLC stage:
Diagram tools
These tools are used for project planning, cost and effort
estimation, project scheduling and resource planning. Managers
have to strictly comply project execution with every mentioned
step in software project management. Project management tools
help in storing and sharing project information in real-time
throughout the organization. For example, Creative Pro Office,
Trac Project, Basecamp.
Documentation Tools
Analysis Tools
Design Tools
Programming Tools
Prototyping Tools
These tools assist in designing web pages with all allied elements
like forms, text, script, graphic and so on. Web tools also provide
live preview of what is being developed and how will it look after
completion. For example, Fontello, Adobe Edge Inspect,
Foundation 3, Brackets.
Maintenance Tools