Anda di halaman 1dari 12

T ECHNICAL U NIVERSITY OF M OLDOVA

C OURSE N OTES

Medii Interactive de Dezvoltare a Produselor Software

Author: VASILICA V ICTOR

Supervisor: M. B ALAN

Wednesday 3rd April, 2013

Contents
Lesson 1:Practical Principles of GUI . . . . . . . . . Lesson 2: Practical Principles of GUI(continuation) 0.1 Program development . . . . . . . . . . . Lesson 3 . . . . . . . . . . . . . . . . . . . . . . . . . . Lesson 4: Version Control Systems(VCS) . . . . . . Lesson 5: Evolution of IDEs . . . . . . . . . . . . . . 0.2 Classical IDEs . . . . . . . . . . . . . . . 0.3 Visual IDEs . . . . . . . . . . . . . . . . . Lesson 6 : Case tools . . . . . . . . . . . . . . . . . . . 0.4 Characteristic of a case tool are . . . . . 0.5 Case product generation . . . . . . . . . Lesson 7 :Java Platforming . . . . . . . . . . . . . . . 0.6 Java SDK le structure : . . . . . . . . . 0.7 Executable class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 4 5 6 7 8 8 9 9 10 10 11 11 11

List of Theorems
0.1 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0.2 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0.1 Denition (IDEIntegration Development Environment) . . . . . . . . . . . . . . 3 3 6

Lesson 1: Practical Principles of GUI


Monday 4 th February, 2013

The principle of user proling: 1. know who your user is: what are users goals? what are users experience? what are users needs? The principle of metaphor: 1. borrow existing features from applications and systems familiar to your user; 2. position of the tools on the interface. The principle of feature exposure: 1. let the user know which feature are available. The principle of coherence: 1. the behavior of the program should be internally and externally consistent; 2. it must follow general rules. The principle of internal consistence: Means that the program behavior makes sense with respect to other parts of the program

Example 0.1

For example: if one attribute of an object is modied using a pop-up menu, then it is to be expected that other attributes of the object will also be editable in a similar way.
and the same will refer to any other object in the application. One should strike towards the principle of least surprise. The principle of state visualization changes and behavior: 1. Should be reected in the appearance of the program. One of the most important kind of state is the current selection, in other words, the object or several objects will be affected by the following command. It is important that its internal state will be visualized in a way ambiguous.

Example 0.2

For example: One common mistake seen in multi-document editors is forgetting to dim inactive docs or forgetting to dim Result of this is that a user looking at several windows at once, each one containing similar selection, will be confused about pressing the lead key,
3

The principle of shortcuts: 1. provides complete and abstract date of getting a task done. The principle of focus attract attention: 1. some aspects of the UI attract attention more than others do. A human eye is not a linear device thats why it is attracted more by some elements than the others. It is mostly attracted to highlighted or animated elements, thats why it is important to use different styles for the cursor and other styled elements which will signal a number of different and useful state changes. The principle of grammar: 1. a user interface is a kind of language; 2. know what the rules are. Many of the operations within a user interface require both: a subject(object to be operated upon) and a verb (an operation to perform on the object). The 2 most common grammars are know as: 1. action object; 2. object action.

Lesson 2: Practical Principles of GUI(continuation)


Monday 11 th February, 2013

The principle of help: Understand the different kinds of health a user needs. There are 5 basic types of health which correspond to 5 questions: 1. Goal oriented "What kinds of things can I do with this program?" 2. Descripted "What is this? What does this do?" 3. Prosigeral "How do I do this?" 4. Interprety "Why did this happen?" 5. Navigational "Where am I?" The principle of safety: 1. Let the user develop condence by providing a safety net. Its important for new users that they feel safe. They dont trust themselves or their skills to do the right thing. Many of this users think orally not only on their technical skills but on they intellectual capabilities as well. In many cases this fears are groundless but they need to be addressed. Now this users need to be assured that they will be protected against the own lack of skills. Are you sure ?(the dial box) and multilevel undo features are vital. 4

At the same time an expert user must be able to use the application as a virtuoso. The principle of constant: 1. Limit user activity to one well-dened context unless theres a good reason not to. User action takes place within a given context the current document, the current selection, the current dial box Its usually a good idea to avoid mixing this levels. The principles of aesthetics: 1. Create a program of beauty. An interface example can be seen in the placement of buttons imagine 5 buttons each with 5 different labels that are almost the same size. The principle of user testing: 1. Recruit help in spotting bugs in yours design. Having a group of users we perform the following steps: talk about and demonstrate the equipment in the room; explain how to think aloud; explain that will not provide help; describe the task and introduce the product; ask if there are any questions before you start, then begin the observation; conclude the observation, tell them what you found out and answerer all their questions. The principle of humanity: 1. Listen to what ordinary people have to say.

0.1

Program development

Generals Software development based on the efciency criteria leads to increase work productivity. Using software tools which assist the developer in creating food quality software in restrain terms and at lower costs. Initially all the efforts were concentrated in building tools for editing, compiling and debugging> Then this efforts was extended to other phases of software development. This way there a process of obligation of spare tools an a specialization in complex instruments like ... products which would assist the software product developments. At different phases are used different tools as follows: 1. Analysis case tools are used; 2. Design stage we also use case tools; 3. Implementation at this stage we use IDEs, keys partially, version tools; 4. Testing and Debugging here we use IDEs and testing tools.

Lesson 3
Monday 18 th February, 2013

Denition 0.1 (IDEIntegration Development Environment)

An IDE(Integration Development Environment) is a software tool which aects a code and helps the developer to implement applications faster and in a more reliable way. 
An IDE is an aggregated tool consisting of several entities: Code editor; Compiler(Interpreter); Linker; Debugger. Computer Aided Software Engineering are tools which are used priorily as such steps as analysis, design and some times for code generations Software Spare Tools This type of tools include strongly specialized applications for performing programming sub activities. This tools were prior to IDE development. There are 3 types of such tools: 1. programming tools; code editors performs opening, editing, searching, replacing, auto-competition and optionally highlighting. compilers perform the transformation from the source code to object code indicating syntactic errors. This tools place a cursor on the line were the error occur thus helping the developer.The compiler also provides features regarding optimize compiling according to different criteria from hardware platforms to some new standard versions. link additors are used to obtain executables by linking the code subprograms and libraries some times. Linker are called automatically and if they are run it means that the code had no errors. interpreters directly and execute program source code. assemblers allow the access to any hardware functions or operating system subroutines(primitives). preprocessors and precompilers increase the portability of the programming language. emulators allow writing the instructions specic for another platform(software or hardware). 2. testing tools are designed to partially automate the process of test;

capture and play tools are tools which allow recording running of the programs registering test to a script-le for a future analysis by repeating and comparing. automated testing tools perform the same tasks as capture and play tools but writing the script-les automatically. test cover analysis allow determining the parts of the code which were not tested yet. test cases generator is a tool which automatically generates signicant test cases based on requests data models and object models and other. The advantage of this tools is redundancy elimination. test data generation are tools which populate different forms, data bases and others for cd logical complexity analyzer many such tools offer the graphical representation of the possible paths in code structure . error tracing tools allow management of the information related to errors and their correction stage as well as data centralization to follow the tendency of the path . testing management tools assists scheduling and organization of testing elements such as script les , test cases and results .

Lesson 4: Version Control Systems(VCS)


Monday 25 th February, 2013

At the stage of implementation, tools that control and manage the teamwork in your project and its versions can be used . Version management process has to assure the consistent work with program building elements like : source code les, binary les , executables and documents. The need for such management is obvious for medium and large projects where a large number of so called artifacts is continuously modied by more developers . At the individual level of development, management comprises evidence and successive archiving of the les , with the possibility of previous version access. Thus the developer can identify the modications which could lead to errors . At a teamwork level ,version management is extended to centralized le management to allow developers to use the newest validated version . Simultaneous work management assures le consistency when these are modied simultaneously by more team members . This is done by granting access only to 1 le, then integrating the changes into that le with specications of the conict zones modied by more than one developer . Versioning tools are usually built around a repository which contains successive versions of the les of one or more projects . The operations used with such a tool are : Checkout The extraction of the le from a repository with the intention of changing it . Checkin Updating the modied le together with differences analysis and merging and highlighting zones 7

Examples of Version management tools : Rational clear case , Microsoft visual source save , CVS(concurrent version system ) , SVN , GIT , Mercurial Most of the VCS tools contain also conguration management . Such features are included also in some case tools another option being integrating case tools with VCS tools . GIT advantages Distributed nature with advantage of multiple redundant repositories and branching . Access control . You decide when , what and from whom will be merged a branch . Branch handling Every developers working directory is a branch Performance and smaller space requirements Line ending conversion SVN advantages User interface maturity Single repository Little doubt about where something is stored Access controls Specify access rights for a single location Binary les Git interprets by default every le as binary while SVN doesnt Partial checkout With SVN you can checkout only a subdirectory which is not possible with git (though there are some other ways to work with this in git) Shorter and predictable revision numbers SVN assigns revision numbers starting form 1 to , while git uses SHA1 Ability to represent richer histories (meh...)

Lesson 5: Evolution of IDEs


0.2 Classical IDEs

Contain:Editor , compiler , linker , debugger . Classical IDEs were built for specic programming language . Debugging is done by : Setting break points Step by step execution with the possibility to pas through subprograms 8

Stepping over Inspecting variables content (Watch)

0.3

Visual IDEs

They are an evolution (of dance) of IDEs assisting the programmer in creating graphical interfaces for the applications . The term Visual Programming refers to application coding from its user interface . Visual programming refers to programming beginning with the visual interface which is designed intuitively . This has the effect of automatically writing the code for creating visual elements and source les. The aim of these environments is to save the programmer from writing specic code for the GUI letting him concentrate more on the functionality of the app . Visual IDEs also include unary management of the les in the projects . A project le is created as well as a working directory . A lot of les related to that project are stored there and managed by the IDE when the project is open for editing . Under one project there could be : source les, libraries and other ... The programs realized by this programming environment are built according to the event driven principles . In classics IDEs follow a procedural paradigm when the code is executed sequentially an event driven programming supposes writing the code for handling the events generated by users actions of the graphical interface . Nowadays there are well known IDEs which provide us with the possibility of choosing the programming language from several . Example: Microsoft Visual Studios : C++,managed C,C#,J#,F#,visual basic Net Beans(based on Sun 1 community edition): Java, C++,C Builder:C,C++,Delphi Rad Studio Eclipse:Python ,C++,Java,C >

Lesson 6: Case Tools


Monday 4 th March,2013

The term CASE represents a collection of methods , tools and processes for software engineering and programming . The term was introduced in 1987 to stand for software development using tools that put cover .... .... .... .... and wold provide features for graphical representation used mainly in analysis ................ Nowadays a case product supports one or more analysis or design methods , automating at a larger scale the activities performed at a larger ............... and assisting partially or totally in the life-cycle activities of the software .

Nowadays case comprises the usage of software tools which would help at all the stage of the development cycle, starting with analysis code automation . Practically it can be considered an extension of the previous instruments which serve for coding stage and previous project development cases . Obviously case technology as well as software design methodology assisted by it are useful in software system development , large scale application package and ...... ....... ......

0.4

Characteristic of a case tool are


1. Must offer powerful graphical tools to document and describe the system 2. Must be integrated to offer easy data transfer between components . 3. Must store the information referred to the software in a computerized warehouse allowing access to it for all team members. 4. Must be reusable for new systems , apps and program development. 5. Must allow easy GUI creation and expanding interaction with the nal user. 6. Must assure app development in high level programming languages . 7.

The performance of case environment ......... was built on the elements previously described in a continuous process of evolution . The importance and advantage of case can be summed to the following : Decrease app and project development time Assures quality of project and increases reliance on it . Assists each step realization , therefore improving quality of the development process . Software development is performed according to some methodology which species the size of the development stages , the contents and output of each stage differentiated by the type of project or its eld . Obtaining a complete denition specication . Accuracy of design and development specications , gaining the possibility of easy future development and maintenance of the software .

0.5

Case product generation

First generation of case included features for different stages of traditional life-cycle in the form of tools usually for strategically planning the system , analysis stage , modeling stage and code generations . The rst generation of case is characterized by a large amount of data processed by the system . Next .... ?????

10

Lesson 7: Java Platforming


Monday 11 th March,2013

Java technology Platform independent , object oriented , multi-threaded programming environment . Java fully realizes the platform concept . Programs written in Java and using Java libraries are based solely on the Java platform tools and they dont depend on the OS they run on . Java VM is a program which interprets and runs Java byte code . Java sources are contained in les with Java extensions . The program which translates Java source code in byte code is called Javac . The program that runs the byte code is called java.exe . The program translated into byte code has the extension .class . To run a java program java interpreter is called with the name of the class . Java 2 SDK . The environment for running java apps is called jre (java runtime environment ). JRE contains the realizations of the virtual java machine for the specic OS .The basic development environment for java apps is called Java SDK . The environment contains a standard set of utilities for the developer. Java 2 SDK includes Java environment for running programs .

0.6

Java SDK le structure :


Root folder contains license agreement and a brief description of the system . It also contains the source code archive . Bin folder contains the developer tools . It contains byte compiler javac and interpreter java . LIB folder contains a set of standard java libs. Include contains les which allow interaction with C language programs using java native interface tech . JRE is a folder that contains the jre realization . Under jre theres another bin with a set of execs and dlls.

0.7

Executable class

An exec class mandatory contains a main method which is the entry point of the app. The main method gets a set of strings which are command line arguments. Compiling the le For translating the program in byte code the full name must be specied including the extension because this name describes the path to the source . If javac exec is run without parameters it will print a list of possible parameters with brief explanation .

11

Anda mungkin juga menyukai