Software Engineering is a course in which we will learn all techniques Which a developer should know while developing software. Software developer face many issues and difficulties during software development. Software engineering basics list shown on screen. Through this list developer solve all the problem face during development. List as follow: Software engineering overview; Should have some knowledge about software engineering. Software development life cycle, all about software life cycle. Software project management; how to manage the software. Software requirements; talk about that, is software fulfill user requirements.
Software design basics user design must be easy to use by user. Analysis and Design tools. Software design strategies. Software user interaction design should be efficient. Software design complexity, how to avoid complexity. Software implementation; after all phases software apply on hardware. Software maintenance; how to maintain the software after implementatíon. CASE tools overview. Software has chances to experience difficulties & problems, so through this list software would develop step by step & chances to reduce difficulties & problems. A good software developer follows this SE basics list. Product is also become good & efficient.
Software have huge impact in our society and life.. There are some; Examples, jet engines,space ships in this softwares are use E-learning, E-shopping we can do easily from our homes Smart phones are also software based and make our lives easy. Facebook can easily use by everyone Through google we get our desired solutions. Before developing a software documentation is very important to enlist customer requirements to deliver a desired software. Second most important part is design phase.
Focusing is essential in this phase Example: Ariane 5 rocket, in this reuse the coding of version 4 in version 5 but there is design error in upward and downward direction which cause overflowing and then rocket crashed. As I talk in start about software, human body also have a software which gives instruction to human body, how to act. Same as in computer a particular software allow computer to perfirm particular task. E.g: painting, ms-word etc. Engineering is developing product using well defined scientific principles and methods. Combination of software and engineering is Software Engineering.
Definition of Software Engineering according to IEEE is: application of systematic, disciplined, quantifiable approach to the development, operation & maintenance of software. Here we discuss 3 main things systematic, disciplined, quantifiable. First we talk about Systematic. Before this talk, user requirements are very important in document R1,R2,R3. Now, software engineering has many such tools to gather information from user to deliver correct data to user. Second, we talk about discipline. In which enlist user requirements & also requires approval of the document from user.
Developer have honored the user, not to make any further changes after approval of the document. Then move to design phase. Now, quantifiable; after design phase your product is complete according to user requirements. Then deliver the product to customer with the document which is approved by user. Software engineering is applicable during software life cycle. Engineering has introduced long ago and software is a new field. Example: car has been developed by an engineers long ago. But automatic cars are introduced with the help of software. Software is not just about coding or programming.
It is seen all over the software. As we go to the tailor we tell him all our requirements & he makes our record suit to our liking. Similarly, in software user requirements are required so that the user can get his desired product. Now, we talk about software objective.
1. Maintability: software should be easy to maintain.
2. Correctness: get desired output.
3. Reuseability: reuse code in another product.
4. Testing: entire code test without separate compnents.
5. Reliability: As I told you earlier in examples: people are relay on jet engines & space ships; so the reliability is very important.
6. Portability: it means software should run on machine A as well as machine B.
7. Adaptibility: Software should easily adopt the environment changes.
Steps how to solve problems facing by developer during software development. First,understand problem: who are stakeholders; what features need to be added; can problem graphically represented. Second, Plan the solution: if a developer face same problem again then developer has experience; subproblem can be defined; can be design model created. Then, implement the plan, is each component execute correctly; source code traceable through design model. Last,Examine result: strategies are applied like testing strategies, then we match our output with deired features and functions.
Through these steps developer solve problems while developing a software like: Error in design, product deliver in time issue, sometimes developer is not develop a product as customer require etc. There are some core principles of software. We should have to remember the reason behind the software existence. Software should be simple.