This site is 100% ad supported. Please add an exception to adblock for this site.

Chapter 7 Software Engineering


undefined, object
copy deck
What year was the ACM Association for Computing Machinery founded? What does it focus on?
SIG (Special Interest Groups) – computer architecture, science education, computer graphics, hypertext/hypermedia, os, biomedia, programming lang, simulation, artificial intelligence, modeling and software engineering.
What distinctions are there between the properties of software and other types of engineering?
1. Engineering uses previously designed versions of components. Software design is domain specific on specific application and to re-use components are historically built from scratch.
2. Tolerances. Engineering has tolerances as long as product is performed within certain bounds. Software performs either correctly or incorrectly. No tolerances acceptable.
3. Quantiative Systems called metric. Software has lack of this and is still in early stages. Engineering has established founded on established science of physics.
Research into Software Engineering is progressing on two levels. What are these?
Practioners: work toward developing techniques for immediate application

Theoreticians: search for underlying principles and theories on which more stable techniques can someday be constructed.
What two professional organizations have promoted high standards of ethics and professional conduct in their membership?
ACM Association of Computing Machinery.

IEEE Institute of Electrical and Electronics Engineers.
Why would the number of lines in a program not be a good measure in the complexity of the program?
A long sequence of assignment statements is not as complex in the context of program design as a few nested if statements.
What technique can be used to determine how many errors are in a unit of software?
One approach is to intentionally place some errors in the software when it is designed. After software has been debugged, check to see how many original errors are still present. Eg. Intentionally place 7 errors in software and find that 5 been removed. Conjecture 5/7 total errors removed.
Suggest a metric for measuring software quality. What weaknesses does your metric have?
How about the number of errors found after a fixed period of use? One prob here is that this value cannot be measured in advance.
Identify another field like software engineering is still struggling to find it’s scientific foundation, and thus continues to apply techniques developed largely by practioners rather than theoreticians?
Eg. Education. Humans successful teaching each other long before researchers began to try to understand how humans learn. Thus education dominated by practioners and the techniques developed. Today argue, theoreticians have messed things up.
What is the Software life cycle as a whole?
One software is “developed”, it enters a cycle of being “used” and modified that continues for the rest of the software life. Development – Use – Modification
What are the major stages within the development of the software life cycle?
Analysis, Design, Implementation, Testing.
What is the Analysis phase in the development of the Software life cycle?
Idenitify what the system should accomplish for potential user and compile to form a set of requirements that the new system must satisfy. (stated in terms of application). After system requirements identified, converted into technical specs.
Eg. Requirement: restrict to authorized personell.
Spec: system won’t respond til password
What is the Design phase in the development of the Software life cycle?
“how” the system will accomplish goals. Structure of software system is established. Best structure of large software system is modular. Breakdown into modules. Modular design, details pertaining to each module under consideration need be mastered.
What is the implementation phase in the development of the Software life cycle?
Actual writing of programs, creation of data files and development of databases. This point we see distinction between software analyst and programmer.
What distinction between software analysts and programmer is there?
Analsyst involved with entire develop process with emphasis on analysis and design steps.
Programmer involved primarily on implentation step. (These roles overlap each other in a computing community sense as more carry both titles)
What is the testing phase in the development of the Software life cycle?
Testing closely associated with implementation. Easch module is tested before implemented. Each modue is tested independently of other modules (called stubs) of course testing gives way to overall system testing as each module completed and combined.

Deck Info