Software design and development Prelim notes

download Software design and development Prelim notes

of 5

Transcript of Software design and development Prelim notes

  • 7/27/2019 Software design and development Prelim notes

    1/5

    INCLUSIVITYInclusive software should take into account the different users who will likelyuse the product; as software developers, we have the responsibility to ensurethat this is the case.

    The need for software design and development to be inclusive

    Cultural BackgroundIt is important that the beliefs and language of different cultures be consideredwhen designing software.Economic BackgroundAs software developers, we have a responsibility to ensure consideration isgiven to the economic situation of purchasers of software products.

    QualityA software product developed for a single user cannot economically beproduced to the same quality standards as one produced for the global market.A balance must be found between cost and quality.

    Influences on pricingCompetition and in some cases governmentregulation can assist in ensuring software products are sold at realistic pricesand are within the financial grasp of a wide audience.

    Nature of MarketAs software developers, we should acknowledge that some market needs are

    better met by non-computer based solutions.GenderBoth men and women should be included in the software design anddevelopment processDisability

    Visual disabilitiesboth men and women should be included in the software design anddevelopment process

    Physical disabilitiesSome users have difficulty performing certain physical tasks. They may not becapable of using a mouse or they may find it difficult to reliably press a singlekey onthe keyboard.

    ERGONOMICSThe term ergonomics refers to the study of the relationship between people

    and their work environment.Effects of prolonged use of software: RSIProcedures to prevent and minimize injury: lighting, indoor climate, noise.Ergonomically placed furniture: desk, chair

    Keyboard should be same height as elbow with wrist slightly bent.Mouse should be adjacent and the same height of the keyboard.Chair should be fully adjustable with lumbar support in small of the back.Elbows should be slightly more than 90 degrees.

    Poor ergonomics in the workplace reduces workers productivity and can causehealthissues. The most common and most debilitating computer-usage health issue isRepetitive Strain Injury (RSI). Other health issues involve general muscle strain

  • 7/27/2019 Software design and development Prelim notes

    2/5

    andvision problems. Ergonomics for computer users includes the design andplacement ofequipment together with procedures to prevent and minimise injuries.CONSISTANCYButtons should be placed in consistent places on all screens.

    Using interface elements correctlyUsing colour appropriatelyUsing fonts correctly

    SOFTWARE PRIVACYPrivacy is about protecting an individuals personal information. Personalinformation is any information that allows others to identify you.

    SOFTWARE LICENCE AGREEMENTSSoftware licences are intended to enforce the intellectual property rights ofsoftware developers. These licence agreements are enforceable by law.Software licence agreements also protects developers from legal action shouldtheir products result in hardship or financial loss to purchasers.

    Intellectual property (IP) refers to creations of the mind: inventions, literary andartistic works, and symbols, names, images, and designs used in commercewhile a software license agreement is a software license agreement is acontract between the "licensor" and purchaser of the right to use software.

    SOFTWARE DEVELOPMENT APPROACHESDefining the problem

    Manager of the business and systems analyst discuss the problems faced withthe current system. From these discussions, comes a document that clearlystates the requirements of the new system.Planning the solutionThis phase has to identify the needs of the user. Processes and procedures ofthe existing system are observed in order to determine how the inputs aregoing to be converted into outputs. This is conducted through tools such asinterviews, questionnaires and observations.Implementing the solutionThe next step in the method of software development is to hand overspecifications to the design team. They will break the required processing up

    into smaller pieces called modules to ensure that those responsible for thedesign of the processing steps have a small, understandable processto work on. Each module is then turned into a set of steps, known as analgorithm. The algorithms are then passes on to the programmer for coding.Testing and evaluatingThe checking procedure is designed to detect errors. This makes the task offinding errors in the later stages much easier. Once this is completed, theprogram is ready for the customer.Maintaining the solutionWhen the new system is in place, continual evaluation by users takes place todetermine whether it meets the requirements.

    COPYRIGHT LAWSThe copyright law exists so as to govern the legality of ownership of an original

  • 7/27/2019 Software design and development Prelim notes

    3/5

    work including the right to copy, adapt and distribute the work. Other usersneed authorisation from the owner.

    Categories of computer software includeOperating software

    Provides the computer with programs that allow it to communicate with theoutsideworld and manage its resources.Utility softwareAllows the user to perform simple tasks such as formatting disks, deleting filesandsearching through files.

    Mass produced programs.Custom software eg airline booking system.

    Ease of softwareNavigation between screens should follow the natural flow of the task.Screen elements that are logically connected should be grouped together.Applications should support both novice and experienced users.Embed shortcut keys.Tab dialogues are bad, because they are difficult for the user to navigate.Inappropriate use of icons: If the icon does not easily suggest the operationthen it should not be used.

    REQUIRED SKILLS IN SOFTWARE DESIGN AND DEVELOPMENTCommunication skillsAbility to work in teams

    Creativity: developing original ideas.Design skillsProblem-solving skills

    Responsibilities of a programmer using 3rd party sourcesMake sure they have permission.Reference the location where you got the code.

    ELEMENTS OF HARDWARE IN COMPUTING SYSTEMINPUT: Keyboards, mouse, scanners.PROCESSING: CPU is responsible for processing and control.CONTROL: CPU is made up of the control unit, the arithmetic logic control unitand registers.STORAGE: Primary storage stores data and programs before and after theyhave been processed by the CPU. Main ones are RAM and ROM. Secondary: CD-R, USB, floppy.OUTPUT Monitor, printer, speakers.

    STORAGEPrimary It includes the registers within the CPU, cache, physical RAM, ROM andvirtual memory.primary memory is volatile, meaning it only temporarily holds data whilst the

  • 7/27/2019 Software design and development Prelim notes

    4/5

    power is on.(ROM) chips are used within the computer to store permanent instructionsrequired to start-up or boot the computer.SecondaryThe contents of secondary storage remains when the power is turned off. Mostcommon secondary storage devices are USB, CD/DVD and hard disks.

    TRANSISTORSTransistors are essentially switches, just like a light switch. They either allowcurrentin the form of electrons to flow or not flow. The difference between a lightswitch anda transistor is that a transistor is switched on and off by an electrical current.

    FETCH EXECUTE CYCLE

    Processing of software instructions by hardware: the 'fetch-execute' cycle

    The fetch execute cycle can be divided up into nine steps:

    1. fetching the instruction from primary storage2. decoding the instruction into an operation code anddata address3. copying the operation code into the instruction register

    4. copying the addresses of the data into the addressregister5. using the address register to copy the data into thestorage register6. sending the operation code and data to the ALU7. executing the instruction on the data8. sending the result to the accumulator, ready for the nextinstruction9. storing the results in primary storage

    Generations of programming languagesLow-level languages (processor dependent).First-generation languages

  • 7/27/2019 Software design and development Prelim notes

    5/5

    Directly able to be understood by computers (binary).Second-generation languages Replaced binary with mnemonic codes (or short code words) to representinstructions.High-level languages (processor-independent).Third-generation languages

    Processor-independent; uses variables with sequences, branches and loops.Fourth-generation languages Processor-independent; uses form filling, computer-aided graphics andscreen instructions.

    The need for translationThe instructions contained in high levellanguages (2nd and above) can't be directlyunderstood by processor. The instructions haveto be converted from human friendly code(source code) to machine-readable form (objectcode).

    The initiation and running of an applicationThe operating system will load the program intomain memory, when it is loaded the OSpasses control to the now-loaded program. The program will more than likelytake inputfrom the user and then perform the task.

    Personnel people involved with the computer system. The include direct

    users, computer operators, maintainers (staff, training specialists, systemanalyst) and developers.

    RAPID APPLICATION DEVELOPMENT (RAD)Software engineering process design that leads to faster applicationdevelopment. A numberof different approaches may be used: CASE (computer-aided software design) reuse of code use of templates. When RAD approach is taken, user is often directly involved with the

    programmer.

    End user developmentEnd-user development is a systems development effort in which the user isprimarily responsible for the development of the system.A good example is when a user purchases a PC and developsapplications on his or her own. In developing the system, he usermight follow a pro typing approach or a method similar to traditionaldevelopment.