CIT 308 Summary
CIT 308 Summary
DPRINCE*INSTITUTE
CIT308 - FORMAL METHODS AND SOFTWARE
DEVELOPMENT
LEVEL: 300, SEMESTER: 2nd SEMESTER
CLICK >> Whatsapp*Group << CLICK
QUESTION
DEFINE SOFTWARE ENGINEERING OR DEVELOPMENT
SUGGESTED ANSWER
Software engineering or development are mathematical techniques that are used in the design,
implementation and testing of computer systems.
QUESTION
SUGGESTED ANSWER
• Formal specification
• Specification analysis and proof
• Transformational development
• Program verification
1. Denotational semantics
2. Operational semantics
3. Axiomatic semantics
PLEASE PATRONIZE US FOR MORE COURSE SUMMARY, PAST QUESTIONS AND TMA (30/30)…
Click >> Whatsapp*Group << Click & Click >> Email << Click & Click >> Telegram*Group << Click pg. 1
01/01/2022 SUMMARY / Q&A
QUESTION
WHAT ARE THE USES OF FORMAL METHODS
Specification
Formal methods may be used to give a description of the system to be developed, at whatever
level(s) of detail desired.
Development: Once a formal specification has been produced, the specification may be used as
a guide while the concrete system is developed during the design process (i.e., realized typically
in software, but also potentially in hardware).
Verification
Once a formal specification has been developed, the specification may be used as the basis for
proving properties of the specification (and hopefully by inference the developed system).
Human-directed proof
Sometimes, the motivation for proving the correctness of a system is not the obvious need for
reassurance of the correctness of the system, but a desire to understand the system better.
Automated proof
In contrast, there is increasing interest in producing proofs of correctness of such systems by
automated means. Automated techniques fall into three general categories:
•Automated theorem proving, in which a system attempts to produce a formal proof from scratch,
given a description of the system, a set of logical axioms, and a set of inference rules.
•Model checking, in which a system verifies certain properties by means of an exhaustive search
of all possible states that a system could enter during its execution.
•Abstract interpretation, in which a system verifies an over-approximation of a behavioural
property of the program, using a fixpoint computation over a (possibly complete) lattice
representing it.
PLEASE PATRONIZE US FOR MORE COURSE SUMMARY, PAST QUESTIONS AND TMA (30/30)…
Click >> Whatsapp*Group << Click & Click >> Email << Click & Click >> Telegram*Group << Click pg. 2
01/01/2022 SUMMARY / Q&A
QUESTION
WHAT ARE THE APPLICATIONS OF FORMAL METHODS
SUGGESTED ANSWER
• Their principal benefits are in reducing the number of errors in systems so their main area of
applicability is critical systems:
Air traffic control information systems,
Railway signalling systems
Spacecraft systems
Medical control systems
Formal methods are applied in different areas of hardware and software, including routers,
Ethernet switches, routing protocols, and security applications.
• In this area, the use of formal methods is most likely to be cost-effective
• Formal methods have limited practical applicability
It is more cost effective to first determine what the crucial components of the software are. These
parts can then be isolated and studied in detail by creating mathematical models and verifying
them.
QUESTION
WHAT IS FORMAL METHOD AND EXAMPLE
SUGGESTED QUESTION
- Formal methods are mathematical approaches to solving software (and hardware) problems at
the requirements, specification, and design levels.
- Formal methods are most likely to be applied to safety-critical or security-critical software and
systems, such as avionics software.
- Software safety assurance standards, such as DO-178B, DO-178C, and Common Criteria
demand formal methods at the highest levels of categorization.
Sequential software,
Examples of formal methods include the B-Method,
the specification languages used in automated theorem proving,
RAISE, and the Z notation.
- The Object Constraint Language (and specializations such as Java Modeling Language) has
allowed object-oriented systems to be formally specified, if not necessarily formally verified.
PLEASE PATRONIZE US FOR MORE COURSE SUMMARY, PAST QUESTIONS AND TMA (30/30)…
Click >> Whatsapp*Group << Click & Click >> Email << Click & Click >> Telegram*Group << Click pg. 3
01/01/2022 SUMMARY / Q&A
QUESTION
WHAT ARE THE IMPORTANT CONSIDERATIONS WHEN DEALING WITH A
FORMAL SYSTEM:
SUGGESTED ANSWER
• Soundness/Correctness.
This property states that every property that can be obtained using the formal system/calculus is
semantically true in some sense.
– Slogan: “What you can prove is also true.”
• Completeness.
This property is the opposite implication of correctness. It states that for every true sentence there
is also a proof in the formal system/calculus.
– Slogan: “What is true can also be proven.” • Expressive power.
– Slogan: “Can I formulate all my properties in the language?”
• Decidability.
If a formal system is decidable, then all proofs can be found automatically by a program.
Slogan: “Can a computer do my work?”
PLEASE PATRONIZE US FOR MORE COURSE SUMMARY, PAST QUESTIONS AND TMA (30/30)…
Click >> Whatsapp*Group << Click & Click >> Email << Click & Click >> Telegram*Group << Click pg. 4
01/01/2022 SUMMARY / Q&A
QUESTION
ENUMERATE Some Limitations to Formal methods
SUGGESTED ANSWER
• The scope of formal methods is limited. They are not well-suited to specifying and analysing user
interfaces and user interaction
• Formal methods are hard to scale up to large systems
• Time consuming and expensive.
• Difficult to use this model as a communication mechanism for non-technical personnel.
• Extensive training is required since only few developers have the essential knowledge to
implement this model.
- Formal methods refer to mathematically based techniques for the specification, development
and verification of software and hardware systems.
- The approach is especially important in high-integrity systems, for example where safety or
security is important, to help ensure that errors are not introduced into the development
process.
- Formal methods are particularly effective early in development at the requirements and
specification levels, but can be used for a completely formal development of an
implementation (e.g., a program).
- Formal methods are best described as the application of a fairly broad variety of theoretical
computer science fundamentals, in particular logic calculi, formal languages, automata theory,
PLEASE PATRONIZE US FOR MORE COURSE SUMMARY, PAST QUESTIONS AND TMA (30/30)…
Click >> Whatsapp*Group << Click & Click >> Email << Click & Click >> Telegram*Group << Click pg. 5
01/01/2022 SUMMARY / Q&A
and program semantics, but also type systems and algebraic data types to problems in software
and hardware specification and verification. It is very beneficial, though it also has it demerits.
- When creating a software there are few engineering stages that is normally followed to ensure
that the software is built within time and budget.
- These stages collectively are called the software development life cycle (SDLC). The SDLC
can be divided into seven (7) stages:
Initial Study,
Analysis,
Design,
Development,
Testing,
Implementation and
Implementation
Formal methods used in developing computer systems are mathematically based techniques for
describing system properties. Such formal methods provide frameworks within which people can
specify, develop, and verify systems in a systematic, rather than ad hoc manner.
A method is formal if it has a sound mathematical basis, typically given by a formal specification
language. This basis provides a means of precisely defining notions like consistency and
completeness, and, more relevant, specification, implementation, and correctness.
QUESTION
ENUMERATE THE SEVEN STAGES BY WHICH SDLC CAN BE DIVIDED?
SUGGESTED ANSWER
1. Initial Study:
2. Analysis:
3. Design:
4. Development:
5. Testing:
6. Implementation:
7. Review:
PLEASE PATRONIZE US FOR MORE COURSE SUMMARY, PAST QUESTIONS AND TMA (30/30)…
Click >> Whatsapp*Group << Click & Click >> Email << Click & Click >> Telegram*Group << Click pg. 6
01/01/2022 SUMMARY / Q&A
QUESTION
WHAT ARE FORMAL METHODS?
SUGGESTED ANSWER
Formal method is a way to take the specification (written in natural language) and converts it into
its mathematical equivalent.
The natural language usually contains ambiguous, incomplete and inconsistent statement.
QUESTION
WHAT ARE THE ADVANTAGES AND DISADVANTAGES OF FORMAL
METHODS
REQUESTED ANSWER
• The development of a formal specification provides insights into and an understanding of the
software requirements and software design.
• This reduces requirements errors and omissions. It provides a basis for an elegant software design.
Indeed, it is sometimes helpful to develop a formal specification of an existing system if that
system is complex, and it is to be changed or replaced, since this can detect subtle errors that
would otherwise be included in the modified (or new) system. In some editions of his book,
Pressman mentions a case involving the development of an operating system.
Here at Calgary, this technique has been used to detect errors in VLSI chips before the chips have
been fabricated.
• Formal software specifications are mathematical entities and may be analysed using mathematical
methods. In particular, it may be possible to prove specification consistency and completeness.
• Formal specifications may be automatically processed. Software tools can be built to assist with
their development, understanding, and debugging.
PLEASE PATRONIZE US FOR MORE COURSE SUMMARY, PAST QUESTIONS AND TMA (30/30)…
Click >> Whatsapp*Group << Click & Click >> Email << Click & Click >> Telegram*Group << Click pg. 7
01/01/2022 SUMMARY / Q&A
PLEASE PATRONIZE US FOR MORE COURSE SUMMARY, PAST QUESTIONS AND TMA (30/30)…
Click >> Whatsapp*Group << Click & Click >> Email << Click & Click >> Telegram*Group << Click pg. 8
01/01/2022 SUMMARY / Q&A
Disadvantages
• It is difficult to demonstrate that the relatively high cost of developing a formal system
specification will reduce overall software development costs. In this respect, the use of
mathematics in software engineering is different from in other engineering disciplines:
Mathematical analysis of physical structures can result in cost savings in materials and allows
cheaper designs to be used.
• Some software engineers, particularly those in senior positions, have not been trained in the
techniques needed to develop formal software specifications. Developing specifications requires
a familiarity with discrete mathematics and logic. Inexperience with these techniques makes the
development of formal specifications more difficult than it would be otherwise.
• System customers are unlikely to be familiar with formal specification techniques. They may be
unwilling to fund development activities that they cannot easily monitor.
• Some classes of software system requirements are difficult to specify using existing techniques.
In particular, current techniques cannot be used to specify the interactive components of user
interfaces. Some classes of parallel processing systems, such as interrupt-driven systems, are
difficult to specify.
• There is a widespread ignorance of the practicality of current specification techniques and their
applicability. The techniques have been used successfully in a significant number of nontrivial
development projects.
• Most of the effort in specification research has been concerned with the specification of languages
and their theoretical underpinnings. Relatively little effort has been devoted to method and tool
support.
NOTE: Formal Method requires the person to know how to apply discrete mathematics. It will
obviously slow down the analysis and design stage resources and time therefore also the cost of
the project.
There are too many different formal methods and most of them are not compatible with each
other.
Formal methods do not guarantee that a specification is complete. For each variable and function,
it just forces the System Analyst and Designer to view the specification from a different
perspective but it does not guarantee that variable and functions will not be left out.
PLEASE PATRONIZE US FOR MORE COURSE SUMMARY, PAST QUESTIONS AND TMA (30/30)…
Click >> Whatsapp*Group << Click & Click >> Email << Click & Click >> Telegram*Group << Click pg. 9
01/01/2022 SUMMARY / Q&A
Integrity Level
Integrity level refers to how much cost an organization is willing to spend and how much risk is
an organization is willing to take when developing software.
PLEASE PATRONIZE US FOR MORE COURSE SUMMARY, PAST QUESTIONS AND TMA (30/30)…
Click >> Whatsapp*Group << Click & Click >> Email << Click & Click >> Telegram*Group << Click pg. 10
01/01/2022 SUMMARY / Q&A
2. Formal Proof
This level studies the formal specification and retrieves the goals of the formal specific. Then
fixed rules are created and with these rules step by step instructions are listed to achieve the
specified goals. This is relatively cheaper but there are more task steps.
3. Model Checking
This level studies the formal specification and formal proof deliverables to make sure that the
system or software contains ALL possible properties to be able to handle all possible scenarios
that could happen for a given specification. This stage is beginning to be more expensive.
4. Abstraction
This level uses mathematical and physical models to create a prototype of the entire system for
simulation. This prototype is use to focus on the properties and characteristic of the system. This
is the most expensive formal method.
POINT:
Formal Method forces the System Analyst and Designer to think carefully about the specification
as it enforces proper engineering approach using discrete mathematics. In this unit we discussed
the following:
Background
Formal Method
Advantages
Disadvantages
Critical Software
PLEASE PATRONIZE US FOR MORE COURSE SUMMARY, PAST QUESTIONS AND TMA (30/30)…
Click >> Whatsapp*Group << Click & Click >> Email << Click & Click >> Telegram*Group << Click pg. 11
01/01/2022 SUMMARY / Q&A
Integrity Level
Stages in Formal Methods
QUESTION
WHAT IS TRUTH TABLE?
Truth tables is used to tell whether a propositional is true or false not only for one (1) instance but
for all possible instance of the variable.
Since proposition is either true or false thus we can use a truth table to list down all the position
state of that proposition.
Proposition: A = Ali is NOT a boy or NOT (Ali is a boy) Possible value: true or false therefore
in a truth table.
With a NOT operator true becomes false and false become true.
QUESTION
WHAT IS A PREDICATE:
SUGGESTED ANSWER
A predicate is a relation among objects, and it consists of a condition part and an action part, IF
(condition) and THEN (action). Predicates that have no conditional part are facts.
An introduction to Predicates was discussed as well as bound and Free variables, predicates and
Truth Table. Predicate quantifiers such existential and universal was highlighted
QUESTION
WHAT IS A SET?
SUGGESTED ANSWER
- A Set is very basic mathematical concept use to group objects.
- It is basically used to show the relationship between each type of objects.
- The Venn diagram is always used to picture the set theory graphically.
- A set is a group that may contain none or one (1) or more elements.
PLEASE PATRONIZE US FOR MORE COURSE SUMMARY, PAST QUESTIONS AND TMA (30/30)…
Click >> Whatsapp*Group << Click & Click >> Email << Click & Click >> Telegram*Group << Click pg. 12
01/01/2022 SUMMARY / Q&A
QUESTION
WHAT IS UNIVERSE?
SUGGESTED QUESTION
Universe (U)
The Universe represents the scope of the system. All elements that is within the universe is
considered necessary and elements not mentioned in the universe is considered none existence.
Thus, it is very important that we define the universe accurately.
Elements
All elements in a set must be unique. In the Venn Diagrams the individual small letter element
name are prefix with a dot. Capital Letter names is use to group many duplicates elements (sets)
do not have a dot. The sequence or arrangement of the elements is not important.
PLEASE PATRONIZE US FOR MORE COURSE SUMMARY, PAST QUESTIONS AND TMA (30/30)…
Click >> Whatsapp*Group << Click & Click >> Email << Click & Click >> Telegram*Group << Click pg. 13
01/01/2022 SUMMARY / Q&A
Finite Elements
Some elements may be finite (with a starting and ending value) thus it can be representation as:
To show a value from 1 to 100 is represented as {1, 2, 3, ..., 100}
To show a value between 1 to 100 is represented as {2, 3, ..., 99}
F contains a number power by 2 minus 4 such that (: or |) all the numbers are integer starting from
0 to 19 is represented as
F = {n2 − 4 | n is an integer; and 0 ≤ n ≤ 19} Or
F = {n2 − 4 : n is an integer; and 0 ≤ n ≤ 19}
Infinite Elements
Some elements may be infinite (no ending value) thus it can be representation as:
To show a integer value above 1 is represented as {1, 2, 3, ...}
F contains all the teachers in FTMS Global KL is represented as
F = { F | F all the teachers in FTMS Global KL } Or
F = { F : F all the teachers in FTMS Global KL }
Cardinality
Cardinality means the number of elements in a set. Cardinality is denoted by vertical bars around
the set. For example
| {1, 3, 9, 15} | = 4
| {1, 2, 3, . . .} | = ∞
PLEASE PATRONIZE US FOR MORE COURSE SUMMARY, PAST QUESTIONS AND TMA (30/30)…
Click >> Whatsapp*Group << Click & Click >> Email << Click & Click >> Telegram*Group << Click pg. 14
01/01/2022 SUMMARY / Q&A
If every member of set A is found inside set B, then A is a subset of B (A ⊆B). If set B has every
member of A and more then B is a super set of A (B ⊇ A) This kind of relationship is also known
as inclusion or containment.
If B is not a subset of A then we use the not a subset ⊊
If A is not a superset of B then we use the not a subset ⊋
Disjoint Sets
PLEASE PATRONIZE US FOR MORE COURSE SUMMARY, PAST QUESTIONS AND TMA (30/30)…
Click >> Whatsapp*Group << Click & Click >> Email << Click & Click >> Telegram*Group << Click pg. 15
01/01/2022 SUMMARY / Q&A
If every member of set A has no relation with set B and vice versa then we say that A disjoint B.
There is no special symbol to show this relationship.
NULL Set ( ∅ )
Every universe or set or subset contains a NULL set. A null set is an empty set ({ }) that carries
no elements. We can say that the NULL set is a subset for every set.
Family Sets
There are times when a set does not contain individual elements but it contains many subsets.
Conveniently this is called a family set and is it describes using the curly bracket within a curly
bracket.
A = { {1, 2, 3, 4, 5} , {6, 7, 8, 9, 10} , {11, 12, 13, 14, 15} }
3.8 Terminology used to describe sets Operation Given the following sets:
U = {-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
A = {-1, 0, 1, 2, 5, 6, 9, 10}
B = {1, 2, 4, 6, 8, 10}
C = {1, 3, 5, 7, 9}
PLEASE PATRONIZE US FOR MORE COURSE SUMMARY, PAST QUESTIONS AND TMA (30/30)…
Click >> Whatsapp*Group << Click & Click >> Email << Click & Click >> Telegram*Group << Click pg. 16
01/01/2022 SUMMARY / Q&A
Intersect (∩): Show only elements that is found only in both sets
A ∩ B = {1, 2, 6, 10} A ∩ C = {1, 5, 9} B ∩ C = {1}
Difference (-): Also known as subtract, this show only elements that is found in this set but NOT
found in another sets
A - B = {-1, 0, 5, 9} A - C = {-1, 0, 2, 6, 10} B ∩ C = {2, 4, 6, 8, 10} B - A = {4, 8}
C - A = {3, 7}
Complement (‘): Show only elements that is found NOT found this sets
A’ = {3, 4, 7, 8} B’ = {-1, 0, 3, 5, 7, 9} C’ = {-1, 0, 2, 4, 6, 8, 10}
(A B)’ = {3, 7} (A ∩ B)’ = {-1, 0, 3, 4, 5, 7, 8, 9}
Difference can be seen as the same as complement.
Equality: Both sets must have exactly the same number of elements with exactly the same value.
Take note that sequence and duplication does not affect the set.
A = {3, 4, 7, 8} Z = {4, 3, 7, 8} therefore A = Z
B = {3, 4, 7, 8, 4} Y = {3, 4, 7, 8, 7} therefore B = Y
A=B=Y=Z
Compatible: Two sets are compatible if all element in one of the set can fit nicely inside another
set.
PLEASE PATRONIZE US FOR MORE COURSE SUMMARY, PAST QUESTIONS AND TMA (30/30)…
Click >> Whatsapp*Group << Click & Click >> Email << Click & Click >> Telegram*Group << Click pg. 17
01/01/2022 SUMMARY / Q&A
- It is sometimes necessary to record the order in which objects are arranged: for example, data
may be indexed by an ordered collection of keys; messages may be stored in order of arrival;
tasks may be performed in order of importance.
- The notion of a sequence: an ordered collection of objects.
QUESTION
WHAT IS A SEQUENCE?
SUGGESTED ANSWER
A sequence is simply a list, such as 2, 4, 6, ... where the numbers 2, 4, etc. are the terms of the
sequence.
Terms (usually represented with a subscript italic letter “n”) refers to the index for a given
sequence starting from 0 to infinite. The sequence (usually represented with any small letter “a”)
refers to the value for a specific term. For example:
QUESTION
WHAT ARE THE TWO TYPES OF SEQUENCE?
PLEASE PATRONIZE US FOR MORE COURSE SUMMARY, PAST QUESTIONS AND TMA (30/30)…
Click >> Whatsapp*Group << Click & Click >> Email << Click & Click >> Telegram*Group << Click pg. 18
01/01/2022 SUMMARY / Q&A
SUGGESTED ANSWER
There are two type of sequence;
Finite sequence A finite sequence has both a starting value and an ending value.
E.g. 1, 2, 3, 4, 5 and 6
Infinite sequence An infinite sequence has both a starting value but no ending value
E.g. 1, 2, 3, 4, 5, 6 …
Geometric sequence
Geometric sequence a.k.a. geometric progression is a sequence of numbers that goes from one
term to the next by always multiplying (or dividing) by the same value. Value multiple by the
same value, Value divided by the same value.
Geometric sequence
Finite or Infinite Sequence
a = the number for the first term in the sequence r = ratio for the sequence
n = the number of terms in the sequence needed
PLEASE PATRONIZE US FOR MORE COURSE SUMMARY, PAST QUESTIONS AND TMA (30/30)…
Click >> Whatsapp*Group << Click & Click >> Email << Click & Click >> Telegram*Group << Click pg. 19
01/01/2022 SUMMARY / Q&A
PLEASE PATRONIZE US FOR MORE COURSE SUMMARY, PAST QUESTIONS AND TMA (30/30)…
Click >> Whatsapp*Group << Click & Click >> Email << Click & Click >> Telegram*Group << Click pg. 20
01/01/2022 SUMMARY / Q&A
PLEASE PATRONIZE US FOR MORE COURSE SUMMARY, PAST QUESTIONS AND TMA (30/30)…
Click >> Whatsapp*Group << Click & Click >> Email << Click & Click >> Telegram*Group << Click pg. 21
01/01/2022 SUMMARY / Q&A
SUGGESTED ANSWER
Proof simply means to be able to show that a statement is correct or true.
No matter how the statement is twisted and turned or set against many different scenario, that
statement comes up with the constant answer.
PLEASE PATRONIZE US FOR MORE COURSE SUMMARY, PAST QUESTIONS AND TMA (30/30)…
Click >> Whatsapp*Group << Click & Click >> Email << Click & Click >> Telegram*Group << Click pg. 22
01/01/2022 SUMMARY / Q&A
QUESTION
DEFINE THE FOLLOWING TERMINOLOGIES
1) Conjecture/ Hypothesis
This is a statement that is believe to be true but has yet to C be proven.
2) Axiom/ Postulate
If the statement is taken for granted to be true even though it was never tested, but base on logic
it is assume to be true.
3) Paradox/ Antinomy
This is a statement which appears to contradict itself or contrary to expectations
4) Theorem
This is a statement that has been proven to be true.
5) Un-decidable
This is a statement that cannot be proven right or wrong. 6) Lemma
A proven theorem that is used to prove other statements
7) Converse
Theorem that is reversed or turned upside down or inward out thus a converse of a theorem need
not be always true.
QUESTION
MENTION THE PROOFING METHODS
SUGGESTED ANSWER
1. Direct Proof
In direct proof, the conclusion is established by logically combining the axioms, definitions, and
earlier theorems. From the expression one can directly see the answer.
For example: Rain →I am wet
2. Contradiction Proof
In proof by contradiction, if that statement is true and we logically contradict it then it will not be
true anymore. For example: Rain → I am wet
No Rain →I am Dry
3. Contra-positive/ Transposition Proof
Proof by transposition or contra-positive turns the statement inside out and upside down. This
method swaps the result into the condition and negates both the result and condition.
For example: Rain →I am wet
I am Not wet →No Rain
4. Induction Proof
This proof method insists that if the statement is true for one instance, it should be true for every
instance.
For example: Rain →I am wet
On Monday (Rain →I am wet)
PLEASE PATRONIZE US FOR MORE COURSE SUMMARY, PAST QUESTIONS AND TMA (30/30)…
Click >> Whatsapp*Group << Click & Click >> Email << Click & Click >> Telegram*Group << Click pg. 23
01/01/2022 SUMMARY / Q&A
SUGGESTED ANSWER
WHAT IS TEST
Test is a way of validating and verifying software. This ensures the removal and/ or reduction of
errors to the barest minimum.
It further ensures that the right product is crafted and that it meets user’s requirement
specifications. Formal methods can be used to achieve this to a higher extent.
POINTS:
- Testing is carried out in software to eliminate errors or at least to reduce it to the barest
minimum.
- Different proofing methods can be used to achieve this.
- Different types of testing including unit testing, integration testing, system testing etc.
QUESTION
WHAT IS FORMAL SPECIFICATION
SUGGESTED ANSWER
Formal Specification is the initial part of formal method that describes what the system must do
without saying how it is to be done.
- Formal methods are applied at various stages of software development in order to precisely
specify the requirement of the system being developed and to find and remove errors.
- The application of formal methods assists in crafting error free, safe and reliable software.
- The application of formal methods at several stages of software development are discussed.
QUESTION
WHAT IS SOFTWARE?
SUGGESTED ANSWER
- Software is more than just a program code.
- A program is an executable code, which serves some computational purpose.
- Software is considered to be collection of executable programming code, associated libraries
and documentations.
PLEASE PATRONIZE US FOR MORE COURSE SUMMARY, PAST QUESTIONS AND TMA (30/30)…
Click >> Whatsapp*Group << Click & Click >> Email << Click & Click >> Telegram*Group << Click pg. 24
01/01/2022 SUMMARY / Q&A
PLEASE PATRONIZE US FOR MORE COURSE SUMMARY, PAST QUESTIONS AND TMA (30/30)…
Click >> Whatsapp*Group << Click & Click >> Email << Click & Click >> Telegram*Group << Click pg. 25
01/01/2022 SUMMARY / Q&A
QUESTION
WHAT IS ENGINEERING?
Engineering on the other hand, is all about developing products, using well-defined, scientific
principles and methods.
Software Development
Software development refers to a set of computer science activities dedicated to the process of
creating, designing, deploying and supporting software. Software itself is the set of instructions
or programs that tell a computer what to do. It is independent of hardware and makes computers
programmable. There are three basic types: System software to provide core functions such as
operating systems, disk management, utilities, hardware management and other operational
necessities. Programming software to give programmers tools such as text editors, compilers,
linkers, debuggers and other tools to create code.
Application software (applications or apps) to help users perform tasks. Office productivity
suites, data management software, media players and security programs are examples.
Applications also refers to web and mobile applications like those used to shop on Amazon.com,
socialize with Facebook or post pictures to Instagram.1
QUESTION
WHO ARE SOFTWARE DEVELOPER
SOFTWARE DEVELOPERS
Software developers have a less formal role than engineers and can be closely involved with
specific project areas — including writing code. At the same time, they drive the overall software
development lifecycle — including working across functional teams to transform requirements
into features, managing development teams and processes, and conducting software testing and
maintenance.
SOFTWARE ENGINEERING
Software engineering is an engineering branch associated with development of software product
using well-defined scientific principles, methods and procedures. The outcome of software
engineering is an efficient and reliable software product.
DEFINITIONS
IEEE defines software engineering as:
(1) The application of a systematic, disciplined, quantifiable approach to the development, operation
and maintenance of software; that is, the application of engineering to software.
(2) The study of approaches as in the above statement.
Fritz Bauer, a German computer scientist, defines software engineering as:
PLEASE PATRONIZE US FOR MORE COURSE SUMMARY, PAST QUESTIONS AND TMA (30/30)…
Click >> Whatsapp*Group << Click & Click >> Email << Click & Click >> Telegram*Group << Click pg. 26
01/01/2022 SUMMARY / Q&A
Software engineering is the establishment and use of sound engineering principles in order to
obtain economically viable software that is reliable and work efficiently on real machines.
QUESTION
SUGGESTED ANSWER
The process of developing a software product using software engineering principles and methods
is referred to as software evolution. This includes the initial development of software and its
maintenance and updates, till desired software product is developed, which satisfies the expected
requirements.
QUESTION
WHAT ARE SOFTWARE EVOLUTION LAWS
SUGGESTED ANSWER
1. S-type (static-type) - This is a software, which works strictly according to defined specifications
and solutions. The solution and the method to achieve it, both are immediately understood before
coding. The s-type software is least subjected to changes hence this is the simplest of all. For
example, calculator program for mathematical computation.
PLEASE PATRONIZE US FOR MORE COURSE SUMMARY, PAST QUESTIONS AND TMA (30/30)…
Click >> Whatsapp*Group << Click & Click >> Email << Click & Click >> Telegram*Group << Click pg. 27
01/01/2022 SUMMARY / Q&A
• Reducing quality - An E-type software system declines in quality unless rigorously maintained
and adapted to a changing operational environment.
• Feedback systems- The E-type software systems constitute multi-loop, multilevel feedback
systems and must be treated as such to be successfully modified or improved.
• Self-regulation - E-type system evolution processes are self-regulating with the distribution of
product and process measures close to normal.
• Organizational stability - The average effective global activity rate in an evolving E-type system
is invariant over the lifetime of the product.
QUESTION
WHAT ARE SOFTWARE PARADIGMS?
SUGGESTED ANSWER
Software paradigms refer to the methods and steps, which are taken while designing the software.
There are many methods proposed and are in work today, but we need to see where in the software
engineering these paradigms stand. These can be combined into various categories, though each
of them is contained in one another:
Programming Paradigm
This paradigm is related closely to programming aspect of software development. This includes
• Testing
• Coding
• Integration
PLEASE PATRONIZE US FOR MORE COURSE SUMMARY, PAST QUESTIONS AND TMA (30/30)…
Click >> Whatsapp*Group << Click & Click >> Email << Click & Click >> Telegram*Group << Click pg. 28
01/01/2022 SUMMARY / Q&A
The need of software development arises because of higher rate of change in user requirements
and environment on which the software is working.
• Large software - It is easier to build a wall than to a house or building, likewise, as the size of
software become large engineering has to step to give it a scientific process.
• Scalability- If the software process were not based on scientific and engineering concepts, it
would be easier to re-create new software than to scale an existing one.
• Cost- As hardware industry has shown its skills and huge manufacturing has lower down he price
of computer and electronic hardware. But the cost of software remains high if proper process is
not adapted.
• Dynamic Nature- The always growing and adapting nature of software hugely depends upon the
environment in which user works. If the nature of software is always changing, new enhancements
need to be done in the existing one. This is where software engineering plays a good role.
• Quality Management- Better process of software development provides better and quality
software product.
QUESTION
WHAT ARE THE CHARACTERISTICS OF GOOD SOFTWARE?
SUGGESTED ANSWER
A software product can be judged by what it offers and how well it can be used. This software
must satisfy on the following grounds:
• Operational
• Transitional
• Maintenance
Operational
This tells us how well software works in operations. It can be measured on:
• Budget
• Usability
• Efficiency
• Correctness
• Functionality
• Dependability
• Security
• Safety
Transitional
This aspect is important when the software is moved from one platform to another:
• Portability
• Interoperability
• Reusability
• Adaptability
PLEASE PATRONIZE US FOR MORE COURSE SUMMARY, PAST QUESTIONS AND TMA (30/30)…
Click >> Whatsapp*Group << Click & Click >> Email << Click & Click >> Telegram*Group << Click pg. 29
01/01/2022 SUMMARY / Q&A
Maintenance
This aspect briefs about how well a software has the capabilities to maintain itself in the ever-
changing environment:
• Modularity
• Maintainability
• Flexibility
• Scalability
- Software Development Life Cycle, SDLC allows the software developer or engineer to follow
well-defined phases or stages to achieve quality in the design and construction of software
product that will meet user’s need.
QUESTION
LIST THE STEPS FOR DESIRED SOFTWARE PRODUCT
SUGGESTED ANSWER
1. Communication:
• Requirement Gathering:
• conducting interviews of users and developers,
• referring to the database or
• collecting answers from the questionnaires.
2. Feasibility Study: System Analysis:
3. Software Design:
4. Coding:
5. Testing:
7. Integration:
8 Implementation:
9. Operation and Maintenance:
10 Disposition:
Software Development Life Cycle consist of steps or phases in developing a software. The steps
are as follows: Communication, requirement gathering, feasibility study, system analysis, system
design, coding, iteration, implementation, operation and maintenance and disposition. There are
quite a number of paradigms used in software development. This includes among others: water
fall model, spiral model, V-model Iterative model etc.
QUESTION
PLEASE PATRONIZE US FOR MORE COURSE SUMMARY, PAST QUESTIONS AND TMA (30/30)…
Click >> Whatsapp*Group << Click & Click >> Email << Click & Click >> Telegram*Group << Click pg. 30
01/01/2022 SUMMARY / Q&A
SOFTWARE PROJECT
SUGGESTED ANSWER
A Software Project is the complete procedure of software development from requirement
gathering to testing and maintenance, carried out according to the execution methodologies, in a
specified period of time to achieve intended software product.
QUESTION
WHO IS A SOFTWARE PROJECT MANAGER
SUGGESTED ANSWER
A software project manager is a person who undertakes the responsibility of executing the
software project. Software project manager is thoroughly aware of all the phases of SDLC that
the software would go through.
QUESTION
WHAT ARE THE RESPONSIBILITIES OF A PROJECT MANAGER?
SUGGESTED ANSWER
Managing People
• Act as project leader
• Liaison 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
Project Planning
PLEASE PATRONIZE US FOR MORE COURSE SUMMARY, PAST QUESTIONS AND TMA (30/30)…
Click >> Whatsapp*Group << Click & Click >> Email << Click & Click >> Telegram*Group << Click pg. 31
01/01/2022 SUMMARY / Q&A
Software project planning is task, which is performed before the production of software actually
starts. It is there for the software production but involves no concrete activity that has any
direction connection with software production; rather it is a set of multiple processes, which
facilitates software production. Project planning may include the following:
PLEASE PATRONIZE US FOR MORE COURSE SUMMARY, PAST QUESTIONS AND TMA (30/30)…
Click >> Whatsapp*Group << Click & Click >> Email << Click & Click >> Telegram*Group << Click pg. 32
01/01/2022 SUMMARY / Q&A
Scope Management
It defines the scope of project; this includes all the activities; process need to be done in order to
make a deliverable software product. Scope management is essential because it creates boundaries
of the project by clearly defining what would be done in the project and what would not be done.
This makes project to contain limited and quantifiable tasks, which can easily be documented and
in turn avoids cost and time overrun.
QUESTION
DISCUSS PROJECT COMMUNICATION MANAGEMENT
SUGGESTED ANSWER
Effective communication plays vital role in the success of a project. It bridges gaps between client
and the organization, among the team members as well as other stake holders in the project such
as hardware suppliers.
Communication can be oral or written.
QUESTION
WHAT ARE THE STEPS TO COMMUNICATION MANAGEMENT PROCESS
SUGGESTED ANSWER
• Planning - This step includes the identifications of all the stakeholders in the project and the
mode of communication among them. It also considers if any additional communication facilities
are required.
• Sharing - After determining various aspects of planning, manager focuses on sharing correct
information with the correct person on correct time. This keeps everyone involved the project up
to date with project progress and its status.
• Feedback - Project managers use various measures and feedback mechanism and create status
and performance reports. This mechanism ensures that input from various stakeholders is coming
to the project manager as their feedback.
• Closure - At the end of each major event, end of a phase of SDLC or end of the project itself,
administrative closure is formally announced to update every stakeholder by sending email, by
distributing a hardcopy of document or by other mean of effective communication.
PLEASE PATRONIZE US FOR MORE COURSE SUMMARY, PAST QUESTIONS AND TMA (30/30)…
Click >> Whatsapp*Group << Click & Click >> Email << Click & Click >> Telegram*Group << Click pg. 33
01/01/2022 SUMMARY / Q&A
QUESTION
WHAT IS Configuration Management
SUGGESTED ANSWER
IEEE defines it as “the process of identifying and defining the items in the system, controlling the
change of these items throughout their life cycle, recording and reporting the status of items and
change requests, and verifying the completeness and correctness of items”.
POINTS
- Software requirements specify the needs or expectation of the user or client. They are captured
through the process of elicitation.
- Both functional and non-functional requirements are captured or elicited. This involves the
interaction between the user or client and the System Analyst and/or the development team.
QUESTION
WHAT IS SOFTWARE DESIGN?
Software design is a process to transform user requirements into some suitable form, which helps
the programmer in software coding and implementation.
Software design is the first step in SDLC (Software Design Life Cycle), which moves the
concentration from problem domain to solution domain. It tries to specify how to fulfil the
requirements mentioned in SRS.
QUESTION
WHAT ARE THE LEVELS IN SOFTWARE DESIGN>
SUGGESTED ANSWER
• Architectural Design -The architectural design is the highest abstract version of the system. It
identifies the software as a system with many components interacting with each other. At this
level, the designers get the idea of proposed solution domain.
• High-level Design- The high-level design breaks the ‘single entity-multiple component’ concept
of architectural design into less-abstracted view of subsystems and modules and depicts their
interaction with each other. High-level design focuses on how the system along with all of its
PLEASE PATRONIZE US FOR MORE COURSE SUMMARY, PAST QUESTIONS AND TMA (30/30)…
Click >> Whatsapp*Group << Click & Click >> Email << Click & Click >> Telegram*Group << Click pg. 34
01/01/2022 SUMMARY / Q&A
QUSTION
WHAT IS MODULARIZATION TECHNIQUE?
SUGGESTED ANSWER
Modularization is a technique to divide a software system into multiple discrete and independent
modules, which are expected to be capable of carrying out task(s) independently.
Advantages of modularization:
• Smaller components are easier to maintain
• Program can be divided based on functional aspects
• Desired level of abstraction can be brought in the program
• Components with high cohesion can be re-used again
• Concurrent execution can be made possible
• Desired from security aspect
QUESTION
WHAT IS Cohesion ?
SUGGESTED ANSWER
Cohesion is a measure that defines the degree of intra-dependability within elements of a module.
The greater the cohesion, the better is the program design.
QUESTION
STATE THE TYPES OF COHESION
SUGGESTED ANSWER
• Co-incidental cohesion - It is unplanned and random cohesion, which might be the result of
breaking the program into smaller modules for the sake of modularization. Because it is
unplanned, it may serve confusion to the programmers and is generally not-accepted.
• Logical cohesion - When logically categorized elements are put together into a module, it is
called logical cohesion.
• Temporal Cohesion - When elements of module are organized such that they are processed at a
similar point in time, it is called temporal cohesion.
PLEASE PATRONIZE US FOR MORE COURSE SUMMARY, PAST QUESTIONS AND TMA (30/30)…
Click >> Whatsapp*Group << Click & Click >> Email << Click & Click >> Telegram*Group << Click pg. 35
01/01/2022 SUMMARY / Q&A
• Procedural cohesion - When elements of module are grouped together, which are executed
sequentially in order to perform a task, it is called procedural cohesion.
• Communicational cohesion - When elements of module are grouped together, which are
executed sequentially and work on same data (information), it is called communicational
cohesion.
• Sequential cohesion - When elements of module are grouped because the output of one element
serves as input to another and so on, it is called sequential cohesion.
• Functional cohesion - It is considered to be the highest degree of cohesion, and it is highly
expected. Elements of module in functional cohesion are grouped because they all contribute to
a single well-defined function. It can also be reused.
QUESTION
WHAT IS COUPLING?
SUGGESTED ANSWER
Coupling is a measure that defines the level of inter-dependability among modules of a program.
LEVELS OF COUPLING
• Content coupling - When a module can directly access or modify or refer to the content of
another module, it is called content level coupling.
• Common coupling- When multiple modules have read and write access to some global data, it
is called common or global coupling.
• Control coupling- Two modules are called control-coupled if one of them decides the function
of the other module or changes its flow of execution.
• Stamp coupling- When multiple modules share common data structure and work on different
part of it, it is called stamp coupling.
• Data coupling- Data coupling is when two modules interact with each other by means of passing
data (as parameter). If a module passes data structure as parameter, then the receiving module
should use all its components. Ideally, no coupling is considered to be the best.
QUESTION
WHAT ARE THE OUTPUT OF SOFTWARE DESIGN PROCESS?
SUGGESTED ANSWER
PLEASE PATRONIZE US FOR MORE COURSE SUMMARY, PAST QUESTIONS AND TMA (30/30)…
Click >> Whatsapp*Group << Click & Click >> Email << Click & Click >> Telegram*Group << Click pg. 36
01/01/2022 SUMMARY / Q&A
QUESTION
WHAT IS AN ANALYSIS?
SUGGESTED ANSWER
An Analysis involves understanding the problem which the software is intended to solve it
while design is the solution to problem.
Software analysis and design tools are tools used to convert requirement specifications into a
software product.
As the name implies, they are used for both analysis and design.
QUESTION
WHAT ARE DECISION TABLES
SUGGESTED ANSWER
A Decision table represents conditions and the respective actions to be taken to address them, in
a structured tabular format.
It helps group similar information into a single table and then by combining tables it delivers easy
and convenient decision-making.
QUESTION
ENUMERATE THE BASIC FOUR STEPS A DEVELOPER MUST FOLLOW IN DECITION
TABLE
SUGGESTED ANSWER
1. Identify all possible conditions to be addressed
2. Determine actions for all identified conditions
PLEASE PATRONIZE US FOR MORE COURSE SUMMARY, PAST QUESTIONS AND TMA (30/30)…
Click >> Whatsapp*Group << Click & Click >> Email << Click & Click >> Telegram*Group << Click pg. 37
01/01/2022 SUMMARY / Q&A
QUESTION
WHAT IS DATA DICTION
SUGGESTED ANSWER
Data dictionary is the centralized collection of information about data. It stores meaning and
origin of data, its relationship with other data, data format for usage etc. Data dictionary has
rigorous definitions of all names in order to facilitate user and software designers.
Data dictionary is often referenced as meta-data (data about data) repository. It is created along
with DFD (Data Flow Diagram) model of software program and is expected to be updated
whenever DFD is changed or updated.
QUESTION
WHAT ARE THE Requirement of Data Dictionary?
SUGGESTED ANSWER
The data is referenced via data dictionary while designing and implementing software. Data
dictionary removes any chances of ambiguity. It helps keeping work of programmers and
designers synchronized while using same object reference everywhere in the program.
Data dictionary provides a way of documentation for the complete database system in one place.
Validation of DFD is carried out using data dictionary.
POINTS
QUESTION
WHAT IS SOFTWARE DESIGN
SUGGESTED ANSWER
Software design is a process to conceptualize the software requirements into software
implementation.
Software design takes the user requirements as challenges and tries to find optimum solution.
While the software is being conceptualized, a plan is chalked out to find the best possible design
for implementing the intended solution.
PLEASE PATRONIZE US FOR MORE COURSE SUMMARY, PAST QUESTIONS AND TMA (30/30)…
Click >> Whatsapp*Group << Click & Click >> Email << Click & Click >> Telegram*Group << Click pg. 38
01/01/2022 SUMMARY / Q&A
QUESTION
SUGGESTED ANSWER
QUESTION
WHAT IS Function Oriented Design
In function-oriented design, the system is comprised of many smaller sub-systems known as
functions. These functions are capable of performing significant task in the system. The system
is considered as top view of all functions.
Function oriented design inherits some properties of structured design where divide and conquer
methodology is used.
This design mechanism divides the whole system into smaller functions, which provides means
of abstraction by concealing the information and their operation.
These functional modules can share information among themselves by means of information
passing and using information available globally.
Another characteristic of functions is that when a program calls a function, the function changes
the state of the program, which sometimes is not acceptable by other modules. Function oriented
design works well where the system state does not matter and program/functions work on input
rather than on a state.
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.
QUESTION
WHAT ARE THE Software Design Approaches
SUGGESTED ANSWER
Top-Down Design
Top-down design starts with a generalized model of system and keeps on defining the more
specific part of it. When all components are composed the whole system comes into existence.
PLEASE PATRONIZE US FOR MORE COURSE SUMMARY, PAST QUESTIONS AND TMA (30/30)…
Click >> Whatsapp*Group << Click & Click >> Email << Click & Click >> Telegram*Group << Click pg. 39
01/01/2022 SUMMARY / Q&A
Top-down design is more suitable when the software solution needs to be designed from scratch
and specific details are unknown.
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.
POINT
= It is pertinent to note that in the design of software certain strategies need to be applied.
= Some of these strategies include: Structured Design, Function Oriented Design, Object
Oriented Design, Design Process, Software Design Approaches (Top-down Design, Bottom-up
Design).
QUESTION
WHAT IS COMPLEXITY
SUGGESTED ANSWER
The term complexity stands for state of events or things, which have multiple interconnected links
and highly complicated structures.
In software programming, as the design of software is realized, the number of elements and their
interconnections gradually emerge to be huge, which becomes too difficult to understand at once.
Software design complexity is difficult to assess without using complexity metrics and measures
QUESTION
MENTION THE Characteristics for system Description
SUGGESTED ANSWER
• Data communications
• Distributed processing
• Performance objectives
• Operation configuration load
• Transaction rate
• Online data entry,
• End user efficiency
PLEASE PATRONIZE US FOR MORE COURSE SUMMARY, PAST QUESTIONS AND TMA (30/30)…
Click >> Whatsapp*Group << Click & Click >> Email << Click & Click >> Telegram*Group << Click pg. 40
01/01/2022 SUMMARY / Q&A
• Online update
• Complex processing logic
• Re-usability
• Installation ease
• Operational ease
• Multiple sites
• Desire to facilitate changes
These characteristics factors are then rated from 0 to 5, as mentioned below:
• No influence
• Incidental
• Moderate
• Average
• Significant
• Essential
POINTS
- Any enterprise software of value has some level of complexity.
- As components or modules are developed and incorporated into the system, the complexity
increases.
- Software design complexity is difficult to assess without using complexity metrics and
measures. These metrics and measures are discussed in this unit.
QUESTION
DISCUSS IMPLEMENTATION PHASE
SUGGESTED ANSWER
The implementation phase plays a very important role in the software development process.
It is at this stage that the physical source code of the system being built is created. Programmer’s
code the IT system on the basis of the collected requirements and the developed project
documentation.
They are based on experience and proven software development techniques. Implementation is
the process of realizing the design as a program.
QUESTION
WHAT IS Functional Programming
SUGGESTED ANSWER
PLEASE PATRONIZE US FOR MORE COURSE SUMMARY, PAST QUESTIONS AND TMA (30/30)…
Click >> Whatsapp*Group << Click & Click >> Email << Click & Click >> Telegram*Group << Click pg. 41
01/01/2022 SUMMARY / Q&A
QUESTION
WHAT IS PROGRAMMING STYLE
SUGGESTED ANSWER
Programming style is set of coding rules followed by all the programmers to write the code. When
multiple programmers work on the same software project, they frequently need to work with the
program code written by some other developer. This becomes tedious or at times impossible, if
all developers do not follow some standard programming style to code the program.
QUESTION
MENTION THE CODING GUIDELINES
SUGGESTED ANSWER
• Naming conventions - This section defines how to name functions, variables, constants and
global variables.
• Indenting - This is the space left at the beginning of line, usually 2-8 whitespace or single tab.
• Whitespace - It is generally omitted at the end of line.
• Operators - Defines the rules of writing mathematical, assignment and logical operators. For
example, assignment operator ‘=’ should have space before and after it, as in “x = 2”.
PLEASE PATRONIZE US FOR MORE COURSE SUMMARY, PAST QUESTIONS AND TMA (30/30)…
Click >> Whatsapp*Group << Click & Click >> Email << Click & Click >> Telegram*Group << Click pg. 42
01/01/2022 SUMMARY / Q&A
• Control Structures - The rules of writing if-then-else, case-switch, while-until and for control
flow statements solely and in nested fashion.
• Line length and wrapping - Defines how many characters should be there in one line, mostly a
line is 80 characters long. Wrapping defines how a line should be wrapped, if is too long.
• Functions - This defines how functions should be declared and invoked, with and without
parameters.
• Variables - This mentions how variables of different data types are declared and defined.
• Comments - This is one of the important coding components, as the comments included in the
code describe what the code actually does and all other associated descriptions. This section also
helps creating help documentations for other developers.
QUESTION
WHAT IS SOFTWARE DOCUMENTATION
SUGGESTED ANSWER
PLEASE PATRONIZE US FOR MORE COURSE SUMMARY, PAST QUESTIONS AND TMA (30/30)…
Click >> Whatsapp*Group << Click & Click >> Email << Click & Click >> Telegram*Group << Click pg. 43