Sunday, 16 December 2018

IMPORTANT ATTRIBUTES PROFESSIONAL SOFTWARE SHOULD HAVE



What are the four important attributes that all professional software should have?  

Image result for important attributes that all professional software should have?

1) Maintainability
- Software should be written in such a way so that it can evolve to meet the changing needs of customers. This is a critical attribute because software change is an inevitable requirement of a changing business environment.

2) Dependability and security
- Software dependability includes a range of characteristics including reliability, security and safety. Dependable software should not cause physical or economic damage in the event of system failure. Malicious users should not be able to access or damage the system.

3) Efficiency
- Software should not make wasteful use of system resources such as memory and processor cycles. Efficiency therefore includes responsiveness, processing time, memory utilisation, etc.

4) Acceptability
- Software must be acceptable to the type of users for which it is designed. This means that it must be understandable, usable and compatible with other systems that they use.

Suggest four other attributes that may sometimes be significant.

Image result for important attributes that all professional software should have?

1) Usable
- Should serve a purpose that makes it worth developing or downloading.

2) Friendly
- Should not be too difficult to operate.

3) Expandable
- Should cover a variety of uses, not just one purpose.  Should also be an option to expand across networks.

4) Upgrade-able
- Should not stay in one version for duration of life.




WHY DIFFERENT APPLICATION TYPES REQUIRE SPECIALIZED SOFTWARE?

Post 4. Based on your own knowledge of some of the application types, explain, with examples, 
why different application types require specialized software engineering techniques to support 
their design and development.



Different application require specialized software engineering because every application type have their own unique function and most of the function vary from the other application type

Example:
Stand Alone app(application that run on the local computer)

(Paint is an example stand alone applications)

 Entertainment Systems(to entertain the user)
(Windows Media player also considers as Entertainment Systems)
(MMORPG or any type of games is considered Entertament systems)


Batch processing systems(Business system that process data in large batches)
(Java Enterprise Edition is commonly use Batch processing systems)

PROFESSIONAL ENGINEERS SHOULD BE CERTIFIED



Discuss whether professional engineers should be certified in the same way as doctors or lawyers. Give the advantages and the disadvantages

in my opinion, professional engineers should be certified in the same way as doctors and lawyers. It is due to the fact that in every profession, we need a way to differentiate the good and the bad. In today’s fast paced world, software plays a vital role. Common people use these software for daily purposes and in one way or the other are affected by the same. For example: Consider a case involving the security of the country. Such a software should not be developed by a person with some knowledge of programming. It may compromise the security of the country. Thus, we should be able to differentiate who is suitable for a particular task. Like in the example quoted, we should be able to make a judgement with regards to who can create and also fix those complex and critical programs, so that the security of the country is safe.


  ADVANTAGES :
+ Competitive since they have been trained according to the standardize training procedure.
+ Legal binding from the source of certification can ensure the that the software engineer is trusted.

  DISADVANTAGES :
- Certification may not reflect the performance of the software engineer.
- No assurance that certified software engineer will guarantee fool-proofed project.

GENERIC SOFTWARE vs CUSTOM SOFTWARE


What is the most important difference between generic software product development and custom software development?

→The essential difference is that in generic software product development, the specification is owned by the product developer. For custom product development, the specification is owned and controlled by the customer. The implications of this are significant – the developer can quickly decide to change the specification in response to some external change (e.g. a competing product) but, when the customer owns the specification, changes have to be negotiated between the customer and the developer and may have contractual implications.


What might this mean in practice for users of generic software products?

→For users of generic products, this means they have no control over the software specification so cannot control the evolution of the product. The developer may decide to include/exclude features and change the user interface. This could have implications for the user’s business processes and add extra training costs when new versions of the system are installed. It also may limit the customer’s flexibility to change their own business processes.

PROBLEMS AND CHALLENGES



Apart from the challenges of heterogeneity, business and social change and trust and security,
identify other problems and challenges that software engineering is likely to face in the 21st century (hint: think about the environment).

Related image


  • Developing systems that are energy-efficient. This makes them more usable on low power mobile devices and helps reduce the overall carbon footprint of IT equipment
  • Developing validation techniques for simulation systems (which will be essential in predicting the extent and planning for climate change)
  • Developing systems for multicultural use
  • Developing systems that can be adapted quickly to new business needs 
  • Designing systems for outsourced development 
  • Developing systems that are resistant to attack 
  • Developing systems that can be adapted and configured by end-users 
  • Finding ways of testing, validating and maintaining end-user developed systems

UML Group 1

DFP5043 – Software Requirement and Design Lab 7 Instructions: Discuss with your group. Answer all questions and post the question an...