Umbrella activities are requires in engineering phases :
Software engineering can be categorized into three generic phases, regardless of application area, project size, or complexity. Definition phase Development phase & Support phase There are the umbrella activities are requires in engineering phases- Software project tracking and control. Formal technical reviews Software quality assurance Software configuration management. Document preparation and production Reusability management Measurement Risk management.
Software process :
A software process is a set of activities and associated results which produce a software product. These activities are mostly carried out by software engineers. There are four fundamental process activities are : Software Specification : The functionality of the software and constraints on its operation must be defined. Software development : The software to meet the specification must be produced. Software validation : The software must be validated to ensure that it does what the customer wants. Software Evolution : The software must evolve to meet changing customer needs.
** There are the common errors, which occur in assembly language programming but do not or are less likely to occur in higher-level-language programming :
Array overwrite Stack overflow Off by 1 in indexing or shifting Wrong flag hit Complement arithmetic problems Floating-point arithmatic problems Double-precision arithmatic problems Initialization Pointer Problems Wrong transfer of control Indirect address problems Iterated DO LOOP problems.
** Any program which contains one or more of the following feature is an improper program :
Interrupt and trap instructions in assembly language Fortran-type end of file conditions PL/ 1-type on conditions Fixed overflow and underflow conditions DO CASE, BREAK/LEAVE instructions Self-modifying code if it can become nonstructured
** Generally, the following program design tools & techniques are used-
Top-down design, top-down implementation(programming) Bottom-up design, bottom-up implementation(programming) Modular design and programming Structured design and programming Defensive design and programming Redundant design and programming Automatic programming Design representations Design and programming tools Program proofs Data-directed design techniques(data flow diagrams) Cause-effect graphs
The responsibilities of software engineering :
Software engineers have responsibilities to the engineering profession & society, Some of these are : Confidentiality : Engineers should normally respect the confidentiality of their employers or clients irrespective of whether or not a formal confidentiality agreement has been signed. Competence : Engineers should not misrepresent their level of competence. They should not knowing accept work which is out with their competence. Intellectual property right : Engineers should aware of local laws governing the use of intellectual property such as patents, copyright, etc. They should be careful to ensure that the intellectual property of employers and client is protected. Computer misuse : Software engineers should not use their technical skills to misuse other people's computers. Computer misuses ranges from relatively trivial (game playing on an employer's machine, say) to extremely serious (dissemination of viruses).
The programmer a scientist, an engineer or an artist :
A programmer is a scientist, an engineer or an artist because- A programmer must create ne idea of science in the solution of the problem.Also all the solution of program is related to the science. So a programmer is a scientist. A engineering is concerned with all aspects of software production. So, a programmer is an engineer as he applies special as well as engineering methods. A programmer is also as artist, as he should know the artistic representation of program's output.
Step do we perform to accomplish interface design :
- Establish the goals and intentions for each task
- Map each goal and intention to a sequence of specific actions
- Specify the action sequence of tasks and subtasks, also called a user secario, as it will be executed at the inteface level.
- Indicate the state of the system; that is, what does the interface look like at the time that a user scenerio is perfomed?
- Define control mechanisms; that is, the objects and actions available to the user to alter the system state.
- Show how control mechanisms affect the state of the system
- Indicate how the user interprets the state of the system from information provided through the interface.
Discuss the impact of high-level language on adaptive maintenance.it is always possible to adapt a program :
Adaptive maintenance sometimes means adapting to anew environment and sometimes means adaptive software the software to new requirements.The main impact of high level language in adaptive maintenance is -
- Easy to enhance or modifyn the program using-high-level language for adaptive maintenance
- Easy to add-high-level language code that is easy to understandable in a program for adaptive4 maintenance.
- Must be modified to adapt it to cope with these environmental changes.But it is not always possible to adapt a program.Because
- Different types of structure program that may create problem
- Adaptive function may not be supported by high-level language
- System may be fault or error condition involve without adapt.
List the different types of bugs :
During debugging different types of faults which repeat themselves over and over again.Also some classes of fault occur only in assembly language programming, some only in high-level-language programming and some in both.The following list represents some bug types:
- Array overwrite.
- Off a in indexing or shifting
- Wrong flag bit
- Complement arithmetic problems
- Pointer problems
- Wrong transfer of control
- Indirect addressing problems
Previously Fixed Error :
A Previously fixed error is one, which recurs, in substaintially the same form after the programmer has terminated work on a code, change believing that the error has been corrected.A conclusive decision that an error is a previously fixed one can be made only on the basis of study of the corresponding fault.
Generated Fixed Error :
A generated error is one, which does not exist until it is created as a by-prodyct of a code change made to correct another error.A generated error is usually best diagnosed by finding the corresponding fault.However, it is sometimes posible to base such classification on the error, e.g, if a newly created variable appears in the wrong output form.
The difference between Software reliability & availability :
Software reliability Software availability 1.Software reliability is the probability that the program performs successfully, according to specifications, for a given time period. 1.Software availability is the probability that the program is performing successfully, according to specifications, at a given point in time. 2.No failure in the interval 0 to 1. 2.Availability means only that the system is up at time t. That is, failure occur at time t. 3.Established relatively low reliability requirements when the system can tolerate relatively frequent failures. . 3.Established relatively high reliability requirements when the system can tolerate relatively frequent failures.
Software reliability :
Software reliability is the probability that the program performs successfully, according to specifications, for a given time period.
Example :The reliability of a software system may measure in an office environment where most users are interested in the operation of the software.They follow the instructions for its use and do not try to experimnt with the system.
In a university enviroment , the reliability may be quite different.Here, students explre the boundaries of the system and may use the system in unexpected ways.These may result in system failures that did not occur in the more constrained office environment.
Reliability is relates to the probability of an error occuring in operational use.A program may conatin know but may still be seen as reliably by its users.
Distinguish between unit & module testing :
Unit Testing :Individual components are tested to ensure that they operate correctl.each component is tested independently, without other system components.
Module Testing :A module is a collection of dependent components such as an object class, an abstarct data type or some looser collection of procedures and function of procedures and functions.A module encapsulates related components, so can be tested without other system modules.