Revision
Revision
Chapter 1
1. Software: Computer programs and associated documentation.
2. Program: is an executable code, which serves some computational purpose.
3. software product: Software, when made for a specific requirement
4. Engineering: is all about developing products, using well-defined, scientific principles and
methods.
5. Software products: updates, requirements, testing, system design, code design, deployment,
maintenance.
6. software crisis: the difficulty of writing useful and efficient computer programs in the required
time.
7. Software Engineering: is an engineering discipline that is concerned with all aspects of
software production.
8. Software costs often dominate system costs.
9. Software consists: program, data, documentation.
10. Documentation types: system documentation and user documentation.
11. Types of software:
a) Generic products: Stand-alone systems that are marketed and sold to any customer who
wishes to buy them.
b) Customized products: Software that is commissioned by a specific customer to meet their
own needs.
12. Difference between Computer Science and Software Engineering
a) Computer Science: Theory, Fundamentals.
b) Software Engineering: Practicalities of software design, development and delivery.
13. Difference between Systems Engineering and Software Engineering:
a) Systems Engineering: All aspects of computer-based systems development HW + SW +
Process and its Older than SWE.
b) Software Engineering: Deals with the design, development and delivery of SW and it Is part
of Systems Engineering.
14. Attributes of good software: Good software should deliver the required functionality and
performance to the user and should be maintainable, dependable and usable.
15. Fundamental software engineering activities: Software specification, software development,
software validation and software evolution.
16. Challenges facing software engineering: Coping with increasing diversity, demands for reduced
delivery times and developing trustworthy software.
17. What differences has the web made to software engineering:
a) The web has led to the availability of software services and the possibility of developing
highly distributed service-based systems.
b) Web-based systems development has led to important advances in programming languages
and software reuse.
18. Software Paradigms: steps to design and develop software.
19. Software Paradigms types:
a) Software Development Paradigms: software engineering paradigms where all the
engineering concepts pertaining to the development of software are applied and it includes
requirement gathering, software design and programming.
b) Software Design Paradigm: This paradigm is a part of Software Development and includes
Design, Maintenance, Programming.
Software engineering
b) Whistle blowing
26. Ethical Issues:
a) Confidentiality
b) Competence
c) Intellectual property rights
d) Computer misuse
Chapter 2
1. Software Requirement: are description of features and functionalities of the target system.
2. Requirement Engineering: The process to gathering, analyzing and documenting requirement
engineering
3. Requirement Engineering process:
a) Feasibility study
b) Requirement gathering
c) Software requirement specification
d) Software requirement validation
4. Requirement Elicitation Process
a) Requirements gathering
b) Organizing Requirements
c) Negotiation & discussion
d) Documentation
5. Requirement Elicitation Techniques
a) Interviews
Structured
Non-structured
Oral
One-to-one
Group
b) Surveys
c) Questionnaires
d) Task analysis
e) Domain Analysis
f) Brainstorming
g) Prototyping
h) Observation
6. Software Requirements
a) Functional Requirements: functional aspects of software
b) Non-Functional Requirements: to install software that you need and it include security,
logging, storage, performance and flexibility.
7. User Interface requirements: UI is an important part of any software or hardware or hybrid
system.
8. User interface requirements are briefly mentioned in: Content presentation, Easy Navigation,
Simple interface, Responsive.
Software engineering
Chapter 3
1. Software design: is a process to transform user requirements into some suitable form.
2. Software Design Levels
a) Architectural Design - is the highest abstract version of the system.
b) high-level Design- breaks the single entity, multiple components into entity showing.
c) Detailed Design- multiple entity showed or every detail.
3. Modularization: is a technique to divide a software system into multiple discrete and
independent modules
4. Advantage of modularization:
a) Smaller components are easier to maintain
b) Concurrent execution can be made possible
c) Desired from security aspect
5. Concurrency: do multiple job at a same time.
6. Cohesion: group of modules that are depend each other/ intradependability.
7. Types of cohesion:
a) Co-incidental cohesion – unplanned and random.
b) Logical cohesion – group of modules which perform same task.
c) Temporal Cohesion - group of module are organized such that they are processed at a similar
point in time.
d) Procedural cohesion – modules are executed sequentially.
e) Communicational cohesion - When elements of module are grouped together, which are
executed sequentially and work on same data .
f) Sequential cohesion - group of modules which output of one element serves as input to
another.
g) Functional cohesion: - group of multiple modules that perform single well defined function.
8. Coupling: is a measure that defines the level of inter-dependability among modules of a program.
9. Levels of coupling:
a) Content coupling - When a module can directly access or modify or refer to the content of
another module.
b) Common coupling- When multiple modules have read and write access to some global data,
c) Control coupling- Two modules are called control-coupled.
d) Stamp coupling- When multiple modules share common data structure and work on different
part of it.
e) Data coupling- Data coupling is when two modules interact with each other by means of
passing data (as parameter).
END