Delivery in day(s): 4
ITECH3501-6501 Principles of Software Engineering Assignment
The essay below is based on software engineering and demonstrates the engineering laws and emphasising the principles and assessing each of their significance in the industrial sector. This academic report is also a compact case study of software engineering and discusses and analyses the vulnerabilities and the chances of failure related to this system. The first section of the essay provides a detailed description of the system along with its sub disciplines. The failure symptoms and the principles of this system are dealt with in the second half of the academic report.
Defining the term: Software Engineering
The term software engineering involves the detailed analysis and the consequent application of the development, feature design and the maintaining the software throughout the operational lifecycle. It is certainly one of the most recent fields of engineering study and is frequently associated with information technology and software development aspects of the subject ("Difference between Software Engineer and Software Developer". Retrieved 18 May 2014.) It is also considered to be a part of fields like management science and systems engineering.
Software Engineering can be categorised into 10 different disciplines that are mentioned below:
- Software requirements – essentially requires the software to be validated accordingly.
- Software design - deals with the several components of the elementary features of the process such as the interface and the architectural designing of the system and influences the net output of the system.
- Software construction – It brings together several multiple operational techniques such as coding, testing, debugging and verification and results in the establishing of a relevant software.
- Software testing – It tests and predicts the behavioural pattern of the system through a range of tests which are selectively analysed against the particular domains.
- Software maintenance –It accounts for the cost effectiveness and the timely support required by the software.
- Software configuration management – Identifying and controlling the changes of the configuration set of the system by effectively undertaking the maintenance procedures.
- Software engineering management – Relatesto management processes like monitoring, coordinating, measuring and controlling to ensure systematic up gradation and maintenance of the software.
- Software engineering process –refers to the measurement and implementation of the techniques that enhances the software life cycle processes.
- The computer based devices are intended to provide assistance to the various processes that use the Computer Aided Software Engineering and is more likely to generate better outputs.
- Software quality –this implies the degree to which the characteristic requirements of the system are satisfied.
Analysing the possible failures
Outlining the systems design and its safety followed by its consequent development and usage is optimised by software system safety. The tools are closely integrated with the critical hardware operating equipment.
A certain component of the safety mechanism as well as the software development programs can never operate independently. The different kinds of integrated devices undergo a significant growth rate when it comes to software application for monitoring and effectively regulating the safety parameters of the subsystems. Inadequate consideration of safety parameters, or any flaw in the designing of the system due to incorrect software specification might lead to the failure of the overall system. The factors that are relevant to the conceptual outlining of the entire system and the ones related to safety engineering are of primary concern andare addressed to attain a certain level of acceptance. This is quite often followed by continual analysis of the safety critical softwarethroughout the operational procedures of the system and its consequent development. The various designing features, and also the functionality and the system safety aspectsdirectly impact the safety of the system. On the contrary the qualitative features of the system are strongly influenced by effectively scrutinising and rigorously developing on the flaws of the system if there is any at all. Analysing the safety hazards of the system involves the working of the complicated systems that controls the critical operating procedures of the device in a definite sequential manner. The different phases in which the safety of the overall system is analysed typically deals with the process of analysing the safety of the system; detailed design of the system at the top levels; and also analysing the modifications of the system if there are any. It is only after these phases are completed that emphasis is laid on the operational aspects of the engineering process such as: the threads and the functional paths (Joint Software System Safety Committee). The domains of the safety parameters that needs attention for providing the correct functional output is also assessed and any relevant malfunctioning of the system can be prevented. Once the drawbacks and the vulnerability of the system is spotted, a wide range of hazard control techniques can be implemented to mitigate the errors. Software security can also be enhanced by the application of the relevant protection technologies that helps to mitigate the threats involved with the system. There is also software that can be applied to correct and predict the system behaviourat the initial stages.
The safety of the overall system can be maintained by the following factors of software engineering:
- The safety requirements are followed taking the cost effectiveness and the time involved into consideration.
- The multiple interaction levels of the safety critical device is determined and scrutinised well enough prior to deriving solutions and coming up with certain designing safeguard features that can be implemented within the system.
- The initial hazards and the critical risks involved are assessed qualitatively before the threats and the vulnerability issues can be addressed by application of the relevant preventive measures within the system.
- The reliability on the administrative operational features of the hazard control is minimised.
- Both the complexity and the quantity of the critical issues are considerably minimised.
- Reduces the risks involved with the critical interfaces as well as the ones that are related to the critical elements of the software system.
- The root causes of the problems and the associated hazards and the potential threats are assessed and eliminated beyond a specific acceptance level.
- Consequent application of the engineering principles on the software-user medium cuts down the chances of any error that might have been caused otherwise.
- Effective usage of the documentation practices in the outlining of the software and both hardware and software failure modes are also involved.
- The different safety parameters provide the testing platform at all the stages of software development.
- Functional analysis of the software enhancing the requirements in accordance with the criteria inquestion.
The Principles of software engineering
Separation of concerns
Whilst dealing with the predictability of the data structure features, integral support to the data and functionality of the operational techniques. The operational efficiency of the features of data structure increases significantly when the above two aspects are categorised broadly into two separate client function lists. Relevant documentation and algorithm outlines tend to generate greater gross profits underlying differential treatments of basic algorithms and consequently changing and dealing with data integrity selectively. The product quality is enhanced by the engineers by recognising and emphasising on the importance of this principle.
More often than not the differential dealing of data results in a significant difference in the output related to it. The run time efficiency of the system is an example of the parameter that has contradictory software values. Once the designing process is done with, the time delay is assessed by analysing the run time. The runtime can be enhanced by making considerable modifications to certain parts of the code. The optimization patterns are studied carefully to allow efficient programming (GA Miller, 1956).
This principle is a much specialised version of the principle of separation of concerns.This principle emphasises categorising the different components into responsibility as well as functionality. This object oriented methodology describes the responsible approach towards modularization.
The abstraction principle is yet another specialised version of the separation of concerns which forms the very basis of the concept that is outlined with this concept. This also involves predicting the behaviour of the components and separating the approach from their application. It analyses the various features from two widely different perspectives. It assesses both the operational approach and the usefulness of the software components.
A phenomenon called unnecessary coupling results if the two different aspects of behaviour and implementation are not separated due to any kind of error that might arise eventually. For instance, the usage of a wide range of other parameters in case of the recursive algorithms, the non-recursiveprograms comes up with accurate initial measures that account for the extra parameters. The other parameters need to be addressed with the complicated behaviour in case the algorithms come up with inaccurate readings. The related client code also is modified accordingly once the application is converted to algorithm. The techniques for dealing with this principle revolve around the concept that was initially framed by Fowler and Scott, 1997.
Anticipation of change
Domain related problems arising out of software issues pose a kind of threat that is dependent on the data types and its inter relationship. On the contrary, abstract handling of data is common amongst the software developers.This principle addresses the complexity related to the learning procedures for both the developers and the clients.
This chiefly outlines the fact that minor increments of functionality in developing any particular software accounts for verification. If there are any faulty measurements, then the software is partially isolated which helps in the rectification process.
Major programming issues at higher technical levels require the application of this principle. Superlative presentations of successful coding is done in C++ (Coplien, 1992). It also serves the purpose of laying out a graphical interface.
The two principles of generality and the anticipation of change are closely related together. It forms the very basis of software design which does not involve any technical limitations. Any superlative software with the two number limitations generally has a life that is much beyond its normal longevity.
Evaluating Design Alternatives
The architectural behaviour and the requirements strongly influences the external parameters. It is used for constructability and precisely calculating the response time and at the same time meeting the needs of the functional aspects.
A detailed analysis of the code and inspecting the design is a more efficient technique of testing errors rather than checking (Michael Fagan, 1976). Statistically speaking about 15 per cent of the resources are utilised and as much as up to 82 per cent of the inaccuracies are dealt by inspection methods.
Improving the process
Committing to the process and improving on it eventually is the key to ensure a healthy software engineering organization. Plenty of organizations are present that do well with the orthodox software forms but not with the recent software models. When it comes to effective planning and assessing the requirements of the organization, this principle has a vital role to play.
This principle focuses on eliminating the errors at the initial stages and contributes to reliable software development (Peter, Naur; Brian Randell, October 1968). Rectifying the software issues in the later stages of code development is a major problem of this principle.
Maintaining Disciplined Product Control
It is a simplified software model that outlines the software development procedures. Any provisional changes in a fairly large project are brought about by the various processes in the developmental cycle. Any modification to the system is done by undertaking formal procedures prior to the establishment of the project.
Modern Programming Practice (MPP)
This programming aspect has a top down structure. This technique helps in getting rid of any technical errors in the initial stages of the process and also allows better testing, integration and enhances the functioning of the other software jobs. Completing the validated requirements, inadequate planning and project control are also related to Modern Programming Practice (Parnas, David, December 1972). However there are quite a few ways by which this principle can be misused which can lead to adverse functioning of the system.
Maintain Clear Accountability
This principle is quite often used as a last resort to pull out the system from a potential downslide when most of the principles discussed above do not generate the desired outputs. Inadequacy in the tangibility of the products reduces the visibility parameter that is commonly associated with such kinds of software projects.
- Joint Software System Safety Committee SOFTWARE SYSTEM SAFETY HANDBOOK A Technical & Managerial Team Approach
- "Difference between Software Engineer and Software Developer". Retrieved 18 May 2014.
- (GA Miller, 1956)
- Fowler and Scott, 1997
- (Coplien, 1992)
- Michael Fagan (IBM Systems Journal, July 1976).
- Parnas, David (December 1972). "On the Criteria To Be Used in Decomposing Systems into Modules". Communications of the ACM15 (12): 1053–1058. doi:10.1145/361598.361623. Retrieved 2008-12-26.
- Peter, Naur; Brian Randell (7–11 October 1968). "Software Engineering: Report of a conference sponsored by the NATO Science Committee" (PDF). Garmisch, Germany: Scientific Affairs Division, NATO. Retrieved 2008-12-26.
OZ Assignment Help provide best affordable assignment writing service in Australia. We are providing most flexible assignment writing according to students need.