Software engineering complete course free tutorial | Learn easy with quiz door| Part 3
Software Types
▪ GENERICThese are stand-alone systems that are produced by a development organization and sold on the open market to any customer. For example, PC-software such as Word, Excel or library information system or accounting system.
▪ Customer (Bespoke)
Develop for a single customer according to their specification. For example, a system written to support a particular business process etc,
Cooperative Solution
starting with generic system and customizing to the need of a particular customer e.g. Resource Planning System.
▪ Software Applications
System Software
Real-time Software
Business information software
Engineering & Scientific Software
Embedded Software
Personal application Software
Communication Software
etc.
▪ Attributes of a Good Software
It is not enough just to produce software. Software should deliver the required functionality. Software should have the appropriate product characteristics. Characteristics varies from product to product.
◽ Characteristics of a Good Software
▶ Maintainability
Software must evolve to meet changing needs.
▶ Trustworthy
Software must be trustworthy, e.g. reliability, security, safety. Software does not wear out. E.g. if a bulb in your room is get fuse, you go to bazar and buy a new bulb. But a software does not wear out.
▶ Efficiency
Software should not make wasteful use of system resources.
▶ Usability
Software must have accepted by the users for what it was designed. Software must have appropriate user interface & adequate documentation.
◽ Difference between Software and Other Systems
The major thing that distinguishes a software system from other systems is that;
🔼 “Software does not wear out!”
As we have seen in above example that our non-software systems could be malfunctioned or crash while working. That mean they are affected by the phenomenon of wear and tear. They have a particular life and after that they could have some problem and may not behave and perform as expected. But this is not the case with software. Software systems does not affect by the phenomenon of wear and tear. If a software has any defect, then that defect will be there from the very first day and that defect normally called bug. That means if a software is not working then it should not work from the very first day. But this could not be the case that at a particular point in time a software is functioning well and after some time the same software is not performing the same task as required. So software does not have the element of wear and tear.
⚫Let’s elaborate this point further.
▶We have just talked about software defects which we call bugs. If a part of a car became wear out, you just need to get a new one from market and replace the damages one with the new one. And the car will start working properly as it was working previously.
▶Similarly, if an electric bulb got fused then you just need to get a new one and put into the socket in place of the fused one and your room will again be illuminated.
▶But the case of software is somewhat different. If a software has a bug, then the same process of replacing faulty part with the new one may not work. You cannot remove the bug by just replacing the faulty part of software with the new one. Or it will not be as simple that, you go to the concerned company, get a new CD of that software and it will start working properly. If the software has a bug and that bug was present in the older CD, then that will remain in the new one. This is a fundamental difference between software and other systems.
◽ Why Software Engineering is Important?
▶ Engineering is about getting results of required quality within the schedule and budget.
▶ In general, software engineers adopt a systematic and organized approach to their work, as this is often the most effective way to produce high-quality software.
▶ Software engineering is not just concerned with the technical processes of software development. It also includes activities such as software project management and the development of tools, methods and theories to support software production.
▶ Engineers also recognize that they must work to organizational and financial constraints so they look for solutions within these constraints.
⭐ Software engineering is important for two reasons:
▶ More and more, individuals and society rely on advanced software systems. We need to be able to produce reliable and trustworthy systems economically and quickly.
▶ It is usually cheaper, in the long run, to use software engineering methods and techniques for software systems. For most types of systems, the majority of costs are the costs of changing the software after it has gone into use.
❇ Responsibilities of Software Engineering
◽ What does a Software Engineer Do?
Typical responsibilities include:
▶ Develops information systems by designing, developing, and installing software solutions.
▶ Investigating current applications
▶ Liaising with users
▶ Producing specifications
▶ Costing new or modified systems
▶ Agreeing proposals
▶ Writing new software and operating manuals
▶ Testing the product to ensure that it operates satisfactorily
▶ Training users
▶ Handling support and feedback
◽Key Skills for Software Engineers
Team working skills.
▶ Numerical and analytical skills.
▶ Ability to work to another’s design.
Commercial awareness.
▶ Good communication skills.
▶ A thorough approach.
◽Typical Employers of Software Engineers
▶ Software companies.
▶ IT consultancies.
▶ Electronics, IT and telecommunications companies.
▶ They may also be employed by any organization that uses computer systems.
▶ Self-employment is possible for individuals with several years' relevant experience.