Pages

Sunday 4 May 2014

Questions and answers on software engineering CIT 745

1.      Explain why good/professional software is not just the programs that are developed for a customer
Good/professional software is not just the programs that are developed for a customer  but it consist of executable code and is   associated  with documentation and configuration  of data that is required to make these programs operate correctly .A professionally developed software system is often more than a single program. The system usually consists of a number of separate programs and configuration files that are used to set up these programs. It may include system documentation, which describes the structure of the system; user documentation, which explains how to use the system, and web sites for users to download recent product information. Example  a word processing system consist of executable program, user manual and the document such as requirements and the design needed to produce the executable program
2.      What is the most important difference between generic software product development and custom software development? What might this mean in practice for users of generic software products?
a)      What is the most important difference between generic software product development and custom software development?
Custom software development these are systems that are commissioned by a particular customer. A software contractor develops the software especially for that customer. Examples of this type of software include control systems for electronic devices, systems written to support a particular business process, and air traffic control systems
Generic software product development these are stand-alone systems that are produced by a development organization and sold on the open market to any customer who is able to buy them. Examples of this type of product include software for PCs such as databases, word processors, drawing packages, and project-management tools. It also includes so-called vertical applications designed for some specific purpose such as library information systems, accounting systems, or systems for maintaining dental records
The 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.
Generic software has no specific target in mind, and development follows that idea. It is designed from its conception to include every function they may possibly use, and be accessible in a manner that does not leave the user feeling that the software is “bloated” or overrun with useless features.
Custom software, on the other hand, is conceptualized by the customer it is developed for, and production and development is guided by the customer. This includes custom components for a specific piece of software will likely not be included in a generic equivalent of the software title, as it would undoubtedly serve little to no purpose for the general public, as well as the removal of all functionality that serves no purpose for the company. This results in a highly efficient, stream-lined program that suits the needs of the customer as well as can be expected from any piece of software
b)      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.
However, the distinction between these system product types is becoming increasingly blurred. More and more systems are now being built with a generic product as a base, which is then adapted to suit the requirements of a customer Enterprise Resource Planning (ERP) systems, such as the SAP system, are the best examples of this approach Here, a large and complex system is adapted for a company by incorporating information about business rules and processes, reports


3.      What are the four important attributes that all good/professional software should have? Suggest four other attributes that may sometimes be significant.
a)      What are the four important attributes that all good/professional software should have?
Good software should deliver the required functionality and performance to the user and should be
        i.            Maintainability: Software developer must develop software that can be easily scalable to meet the changes in the business environment and their customers’ needs as they arise.
      ii.            Dependability and security: software should be dependable and well written to ensure safe data sharing among users and business as well as protect the integrity of the system and the user alike.
    iii.            Efficiency: Software developer should take care and have consideration for processor, memory, response time and use of resources of the system that the software will be implemented on as well as any and all machines that it may be installed on.
    iv.            Acceptability: The Software should be easily usable, understandable and compatible with other systems that it may be used on.

b)      Other attributes that may be significant could be
        i.            Reusability .Ability to be reused in other applications
      ii.            Disreputability –Ability to be distributed over a network of processors
    iii.            Portability –Ability to operate on multiple platforms e.g. laptop and mobile platforms
    iv.            Inter-operability –Ability to work with a wide range of other software systems.




4.      Identify problems and challenges that software engineering is likely to face in the 21st century (hint: think about theenvironment).
There are many possible challenges that could be identified. These include:
          i.            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.
        ii.            Developing validation techniques for simulation systems (which will be essential in predicting the extent and planning for climate change).
      iii.            Developing systems for multicultural use
      iv.            Developing systems that can be adapted quickly to new business needs
        v.            Designing systems for outsourced development
      vi.            Developing systems that are resistant to attack
    vii.            Developing systems that can be adapted and configured by end-users
  viii.            Finding ways of testing, validating and maintaining end-user developed systems
 .
5.      Based on your own knowledge of some of the application explain, with examples, why different application require specialized software engineering techniques to support their design and development

        i.            Costs and frequency of change. Some systems (such as embedded systems in consumer devices) are extremely expensive to change; others must change frequently in response to changing requirements (e.g. Business systems). Systems which are very expensive to change need extensive upfront analysis to ensure that the requirements are consistent and extensive validation to ensure that the system meets its specification. This is not cost effective for systems that change very rapidly
      ii.            The most important ‘non-functional’ requirements. Different systems have different priorities for non-functional requirements. For example, a real-time control system in an aircraft has safety as its principal priority; an interactive game has responsiveness and usability as its priority. The techniques used to achieve safety are not required for interactive gaming; the extensive UI design required for games is not needed in safety-critical control systems.

    iii.            The software lifetime and delivery schedule. Some software systems have a relatively short lifetime (many web-based systems), others have a lifetime of tens of years (large command and control systems). Some systems have to be delivered quickly if they are to be useful. The techniques used to develop short-lifetime, rapid delivery systems (e.g. use of scripting languages, prototyping, etc.) are inappropriate for long-lifetime systems which require techniques that allow for long-term support such as design modeling.


6.      Explain why there are fundamental ideas of software engineering that apply to all types of software systems

        i.            Software specification where customers and engineers define the software that is to be produced and the constraints on its operation.
      ii.            Software development, where the software is designed and programmed. They should be developed using a managed and understood development process. The software developer should have in mind what is the business value that the software is to provide to the owner and end user of the application, and assure that it meets the client’s needs not wants

    iii.            Software validation, where the software is checked to ensure that it is what the customer requires. The software must be dependable and execute as intended in all systems, and be able to protect its self and the client for outside attacks
    iv.            Software evolution, where the software is modified to reflect changing customer and market requirements software Developer must hold knowledge of what the software is intended to do for the client and what is expected from the software from the clients view as well as the end users. The Software developer has to deliver this software bug free and within the client’s dead line as well
 .
7.      Explain how the universal use of the web has changed software systems.
Enhance technological innovation. Services like learning activities in which engineer can share technology of developing software
The web was created for research and military use at first where only internal companies where able to use it, but now it has evolved where ordinary users can access information of all kinds and purchase items for prominent companies and entrepreneurs worldwide. This is where Software Developer comes in developing ecommerce systems and much more.

8.      To help counter terrorism, many countries are planning the development of computer systems that track large numbers of their citizens and their actions. Clearly this has privacy implications. Discuss the ethics of developing this type of system
Ethics is a concern of humans who have freedom of choice. Ethics is about individual choice: When faced with alternative courses of action, this can focus on what is the correct moral choice and what are the main features of ethical choice.
Software engineers have wider responsibilities on systems development than the mere application of their technical skills. Ethically, an engineer should respect the confidentiality of the public irrespective of whether or not a formal confidentiality agreement has been undertaken. 
Developing computer systems to counter terrorism by tracking citizens of a country and their actions has privacy implications. Privacy entails an individual's right to control the collection and use of his or her personal information, even after that information is disclosed to others with the.
Systems are been developed that violates the human privacy rights.




9.      How might the delivery of a new system itself affect users’ requirements?
The system cannot meet user requirements due to high expectation of the user
High demand of software. Due to many software engineers intend to produce software for business purpose so some of the user requirements cannot include during development
 Poor procedure of following during requirement gathering

10.  What are the best and worst experiences you, or people you know, have had recently which have involved software?

Worst experiences
Budget and time may be limited
Changing of Technologies and development approaches
Best experiences
Competent in developing software. Get competitive advantage in developing software
Confidentiality in developing software to manage software in any platform

for more questions and answers email at eliasmatimba@gmail.com and if you have satisfied with my answers email be even to give thanks or any idea you want to share



 



23 comments:

  1. This is the best, Good questions with perfect answers! Thank you

    ReplyDelete
  2. very good answers it helped me a lot

    ReplyDelete
  3. Yan ang tanong namin galing sa Software Engineering book.

    ReplyDelete
  4. Thank you very much po. This is very helpful to us, students, who have a Software Engineering course. Hoping for more. God bless.

    ReplyDelete
    Replies
    1. I am an expert tutor in software engineering and all other fields that you may need my assistance reach me at martinkoome64@gmail.com whatsapp +254720060088,
      regards

      Delete
  5. cool answers it was really helpful to me.
    regards M-H

    ReplyDelete
  6. just what i was looking for

    ReplyDelete
  7. thank you this was quite helpful.

    ReplyDelete
  8. Very good questions... Very thanks dear

    ReplyDelete
  9. Very good questions... Very thanks dear

    ReplyDelete
  10. Thank you!! This is very helpful for me

    ReplyDelete
  11. Thank you!! This is very helpful for me

    ReplyDelete
  12. Don't copy the answer from other websites, if you want to copy, then you also have to mention the link in the citation. Your Question 5 answer is completely similar to Question 2 on this below link:
    http://www.cs.unb.ca/~wdu/cs3043/a1ans.htm

    ReplyDelete
  13. Informative Topic. Thanks for sharing such useful content. Keep sharing Surya Informatics


    ReplyDelete

  14. are you looking for erp software development company then click
    erp software development company in USA

    ReplyDelete

  15. either you are looking for Application-Development then click

    Mobile app development company in USA

    either you are looking for cloud services then click

    cloud services provider company in USA

    either you are looking for Artificial Intelligence services then click

    Artificial Intelligence services provider company in USA

    ReplyDelete
  16. Cybexo is providing the best web development services in canada including outstanding digital appearance Mobile app, grapgic designing, content writing, and branding


    CYBEXO is a well-known and best website design and web development company in Canada. We are the most reliable in website design services. We build SEO friendly website design as well as web development and also keep the website responsive.Cybexo being the best website design and web development company can help your business to create a lasting brand that resonates with your customers in Canada and all over the world. We are delivering outclass results that are empowering our clients.

    ReplyDelete